Julien Danjou
3fc3fd9623
use previous statusbar to get screen size
2008-01-16 15:26:48 +01:00
Julien Danjou
542df6a3ab
do not try to guess where we should XSync(), XSync after bunch of XEvents
2008-01-11 16:17:15 +01:00
Nikos Ntarmos
956ce4ab8e
add nscreen var to store screen count
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-11 13:39:48 +01:00
Julien Danjou
2aacaa9320
stop dropping EnterWindow event
...
and make statusbar_update_position static
2008-01-10 20:53:31 +01:00
Julien Danjou
5c9291ff0b
use a cache system for status bar
2008-01-07 18:12:38 +01:00
Julien Danjou
d16b11bb30
cosmetic
2008-01-06 22:46:59 +01:00
Julien Danjou
af6ff367eb
typedef enum Position
2008-01-04 19:12:07 +01:00
Julien Danjou
a12ea9441f
fix window placement for left positionned statusbar
2008-01-04 13:28:51 +01:00
Julien Danjou
4f65aa8f51
rework headers inclusion
2008-01-01 18:02:36 +01:00
Julien Danjou
b9d6a93c59
draw statusbar after init
2007-12-31 10:04:03 +01:00
Julien Danjou
f7f6951957
allow to have several statusbar
2007-12-30 21:00:34 +01:00
Julien Danjou
64e44421dd
allow to set statusbar width
2007-12-30 18:55:46 +01:00
Julien Danjou
643407b5ea
allow to set the statusbar height
2007-12-30 18:54:17 +01:00
Julien Danjou
a051c2db09
free old statusbar drawable
2007-12-30 18:13:33 +01:00
Julien Danjou
cb0203b0a0
don't display if statusbar off
2007-12-30 14:23:01 +01:00
Julien Danjou
0df27e0f6a
split the display part of statusbar_draw(), move it to new statusbar_display(), and call it for expose events
2007-12-30 13:17:26 +01:00
Julien Danjou
1021f86e24
rework draw stuff
...
- remove display from DrawCtx
- add Drawable in statusbar
2007-12-30 12:26:11 +01:00
Julien Danjou
360d9023a4
allow textbox widgets to have their own font
2007-12-29 16:04:06 +01:00
Aldo Cortesi
5f079ef73e
Clean get_screen_info and get_display_info.
...
Besides making these functions much nicer to use, this fixes a number of
things:
- Clients now don't have to free the returned structures.
- The ScreenInfo allocated by XineramaQueryScreens should be freed with XFree,
not p_delete.
This patch also introduces an abstract Area type that will be very useful.
2007-12-23 09:53:50 +01:00
Aldo Cortesi
51379e065b
Clean interface of statusbar_update_position.
2007-12-23 09:51:44 +01:00
Julien Danjou
b0a8522466
rename a bunch of widget functions
2007-12-22 20:55:17 +01:00
Julien Danjou
c232576631
rename a bunch of draw functions
2007-12-22 20:17:24 +01:00
Julien Danjou
afe32e27f0
renders right widget from last to first
2007-12-22 16:49:21 +01:00
Aldo Cortesi
4d4001b41f
Clean interface of statusbar_init.
2007-12-19 10:43:15 +01:00
Aldo Cortesi
7190e4fa48
Change awesome_config -> AwesomeConf.
...
All other struct definitions in the project follow this naming convention.
2007-12-19 10:43:02 +01:00
Aldo Cortesi
980afac1cf
Make sure all uicb_ functions have doxygen annotations.
...
Also refactor some indentation while I'm there.
2007-12-19 10:42:34 +01:00
Aldo Cortesi
ce556ec743
The preferred line length is 80 characters.
2007-12-18 11:27:26 +01:00
Aldo Cortesi
965cbb7e0b
Continue to simplify interfaces that require arguments in globalconf.
...
Today I focus on screen.c.
2007-12-18 11:26:39 +01:00
Aldo Cortesi
205f2c55ca
Make "Statusbar statusbar" the in VirtScreen "Statusbar *statusbar". This is
...
more consistent with the rest of the interface, and will make our life easier
when we have mulitiple statusbars per screen.
2007-12-18 11:26:18 +01:00
Aldo Cortesi
4723ab3627
This patch is a first draft of independently targetable textboxes, and a
...
protocol to speak to them. Given a textbox widget definition like this:
textbox mail {
default = 0
}
textbox time {}
We can update the boxes individually by going:
echo 0 tell_widget mail 10
echo 0 tell_widget time 12:01
Text boxes will dynamically resize to fit their contents. A textbox can be
cleared by going:
echo 0 tell_widget name
A text-box containing no text will take up 0 space in the bar, i.e. it will not
be visible at all
Textboxes now supersede statusbar_set_text, so this call has been removed.
2007-12-17 18:22:05 +01:00
Aldo Cortesi
b6bfd1a4d0
The arg to uicb_ functions is no longer const.
2007-12-17 18:19:44 +01:00
Aldo Cortesi
5715b70ab3
Make empty status bar look nice.
...
It's now possible to have unfilled space on the status bar. Fill it with the
background colour on creation.
Normalise line lengths while I'm at it.
2007-12-16 12:58:21 +01:00
Aldo Cortesi
8880a3804e
Simplify widget draw interface.
2007-12-16 12:54:42 +01:00
Aldo Cortesi
2f74c079aa
Massive, massive interface refactoring.
...
The big change here is that we now keep our configuration structure in a global
variable called globalconf. This radically simplifies many interfaces, since
passing awesomeconf everywhere is no longer necessary. There are also more
subtle interface effects - now we can reliably identify a screen from just a
screen ID, rather than an awesomeconf, screenid tuple.
Overall, this patch makes most of the interfaces in awesome much nicer to use -
enjoy!
Yes, this is a huge patch, but since a lot of the refactoring was done
systematically using vim macros, splitting this up would have been very hard.
2007-12-16 12:12:48 +01:00
Julien Danjou
602f921559
first try to get widget configurable
2007-12-15 18:21:02 +01:00
Julien Danjou
79749fcc7f
remove useless #include
2007-12-15 16:17:57 +01:00
Aldo Cortesi
76ddf235ac
Widget-ise the statusbar.
...
We now have the beginnings of a flexible widget structure for the statusbar.
For now, there is no behavioural change, and the interface is a bit crude, but
watch this space!
2007-12-15 10:15:42 +01:00
Aldo Cortesi
c81b5cfc55
Refactor statusbar.c
...
This a preparatory patch. Refactor statusbar.c to compartmentalise the drawing
of the statusbar "widgets". We can now begin to see what a generalised widget
drawing interface would look like.
Note that at the moment we don't gracefully handle situations where "widgets"
run out of space. That will come as we generalise from here.
2007-12-15 09:48:13 +01:00
Aldo Cortesi
f36a56cdcc
Refactor draw.c
...
This is a big patch that does not change any behaviour. We abstract the data
needed by the draw.c functions into a context object, and pass that around
instead of passing each argument every time. This results in a much cleaner API
- most functions lose 3-4 arguments.
This is a preparatory patch for further work on statusbar.
2007-12-15 09:30:29 +01:00
Julien Danjou
df2a8e1b1d
add a focus history
2007-12-14 21:51:54 +01:00
Julien Danjou
aacb020564
rename statusbar functions
2007-12-14 20:10:52 +01:00
Julien Danjou
bb1381abc2
make tags a linked list instead of array
2007-12-14 19:05:30 +01:00
Julien Danjou
b03cdbd877
remove nlayouts
2007-12-14 17:57:05 +01:00
Julien Danjou
84bb954004
rename statusbar uicb and add uicb_statusbar_set_position
2007-12-14 15:52:52 +01:00
Julien Danjou
078d224b46
use a linked list for handling tag <-> client relationship
2007-12-14 14:29:32 +01:00
Aldo Cortesi
2b5ba1f16f
Improve the call signature of get_current_tag and get_current_layout.
2007-12-14 09:29:42 +01:00
Julien Danjou
5fa67c23df
split awesomeconf and screen config
...
a.k.a the big post-2.0 blind commit
2007-12-11 20:56:51 +01:00
Nathan Hüsken
9524f15478
Adding padding
2007-11-28 11:00:48 +01:00
Julien Danjou
ae49735001
use real and smaller surface size to draw statusbar when rotating
2007-11-13 21:23:13 +01:00
Julien Danjou
19e7737ef0
don't draw statusbar if it's off
2007-11-11 23:23:38 +01:00
Julien Danjou
58391a84fa
don't move status bar offscreen (fails on Xinerama): unmap it instead
2007-11-11 22:47:56 +01:00
Julien Danjou
651dcc5c9e
compute correctly status bar position for left
2007-11-11 22:44:21 +01:00
Julien Danjou
0753ed5fb5
statusbar drawable is no more stored but dynamicaly created; this fix a problem with statusbar on right
2007-11-11 22:27:00 +01:00
Julien Danjou
db65104aa2
use M_PI_2
2007-11-11 21:20:02 +01:00
Julien Danjou
84017b9666
inverse rotate and translate and fix bar position on right for Xinerama
2007-11-11 21:13:37 +01:00
Julien Danjou
543899da7c
fix statusbar display when on right
2007-11-11 19:49:50 +01:00
Julien Danjou
05dad60786
experimental support for status bar to be on right or left
2007-11-11 18:59:11 +01:00
Julien Danjou
602d92d8b2
move statusbar_default_position in Statusbar struct
2007-11-10 10:17:54 +01:00
Julien Danjou
001f430c0c
remove global client_sel, use tag's client_sel
2007-10-26 23:19:13 +02:00
Julien Danjou
bd08d8a119
bugfix: don't display window name in statusbar if sel is not on our screen
2007-10-25 13:48:22 +02:00
Julien Danjou
8ad32d29c2
fix information headers
2007-10-17 10:53:32 +02:00
Julien Danjou
842eed01c0
remove current_layout, insert get_current_layout() to get it dynamicly
2007-10-16 22:33:15 +02:00
Nikos Ntarmos
7ecbae334f
use Cairo to render fonts
2007-10-16 16:35:28 +02:00
Julien Danjou
ccb7e89750
arrange() does not need Display as arg
2007-10-15 18:23:05 +02:00
Julien Danjou
17bc4dc9a7
drawstatusbar does not need display as arg
2007-10-15 18:19:33 +02:00
Julien Danjou
a74ca1d1de
tabswidth is 4 not 6
2007-10-15 13:56:24 +02:00
Julien Danjou
4e0acfa99a
add coding style stuff
2007-10-15 13:40:52 +02:00
Julien Danjou
77609263dc
move txtlenwidth initlization in initstatusbar()
2007-10-15 12:06:43 +02:00
Julien Danjou
a6781157b6
allow to execute uicb function via awesome control fifo
2007-10-12 17:10:36 +02:00
Julien Danjou
863714f501
use p_delete instead of XFree for our own pointers
2007-10-11 23:44:35 +02:00
Julien Danjou
c4e130d7d9
remove Display as param for uicb
2007-10-11 23:32:29 +02:00
Julien Danjou
c3986a5937
sel is no more extern
2007-10-11 23:12:05 +02:00
Julien Danjou
12ef66b79a
clients list is no more global
2007-10-11 21:50:32 +02:00
Julien Danjou
f840f532e3
Fix e22b1e2a73
, size was set too late, and fix memory leak with *si
2007-10-11 19:29:34 +02:00
Julien Danjou
e22b1e2a73
set statusbar->height in initstatusbar()
2007-10-11 18:43:42 +02:00
Julien Danjou
a06674fbe7
add drawcircle() function and use it for floating/max windows instead of drawrectangle
2007-10-11 17:06:55 +02:00
Julien Danjou
1f5a6e918b
use drawrectangle to draw background in statusbar, fix coords of rectangles and compute colors correctly
2007-10-11 16:29:20 +02:00
Julien Danjou
f6ea98649c
drawsquare is now drawrectangle
2007-10-11 15:44:30 +02:00
Julien Danjou
c05ed01c1a
bugfix: only catch first click to raise if we're floating
2007-10-11 11:33:40 +02:00
Julien Danjou
445479cf8b
use Cairo for rendering square instead of Xlib
2007-10-10 19:59:14 +02:00
Julien Danjou
e733af41ec
remove drawcontext everywhere
2007-10-10 14:09:36 +02:00
Julien Danjou
f57d275df1
move font to awesomeconf
2007-10-10 13:34:25 +02:00
Julien Danjou
2d0526696c
move cursors in awesome config
2007-10-10 13:29:46 +02:00
Julien Danjou
1a755ff245
simplify color handling
2007-10-10 13:07:12 +02:00
Julien Danjou
0f75c91fe7
remove x and y attributes from DC
2007-10-09 22:35:44 +02:00
Julien Danjou
355d3aad5f
remove drawcontext `w' attribute
2007-10-09 22:33:00 +02:00
Julien Danjou
c4b1867a4d
remove h attribute of drawcontext
2007-10-09 22:29:44 +02:00
Julien Danjou
2887bb8b86
avoid DC in drawsquare()
2007-10-09 21:43:26 +02:00
Julien Danjou
aa645b15ab
avoid DC in drawtext()
2007-10-09 21:29:19 +02:00
Julien Danjou
de45017b5d
switch to libconfuse instead of libconfig
2007-10-08 18:45:05 +02:00
Julien Danjou
158b91adaf
bugfix: reset correctly default bar position on toggle
...
Thanks Daniel Brinkers
2007-10-08 13:07:13 +02:00
Julien Danjou
d7aac7b811
better fix for font height problem
...
Thanks to Arnaud Fontaine
2007-10-04 17:35:47 +02:00
Julien Danjou
2e0b2911e3
bugfix: give one more pixel to not cut status text with some fonts
2007-10-04 15:56:20 +02:00
Julien Danjou
1c5cd1ec57
bugfix: add a pixel more for tags drawing, this allows all fonts size to work
2007-10-04 12:55:19 +02:00
Julien Danjou
97a2085705
cosmetic: remove lines with empty spaces at end
2007-10-03 17:26:14 +02:00
Julien Danjou
cd46ec6378
remove stack from externs
2007-10-03 00:15:50 +02:00
Julien Danjou
950605b1a0
simplify get_screen_info()
2007-10-01 20:58:29 +02:00
Julien Danjou
272f4b1c2a
Xft support
2007-10-01 19:22:57 +02:00
Julien Danjou
8c531e2a81
store phys_screen
2007-10-01 15:23:05 +02:00
Julien Danjou
659adaab5e
use get_real_screen() in a lot of places
2007-09-28 11:55:08 +02:00