Commit graph

70 commits

Author SHA1 Message Date
Dana Jansens
56307d6077 a) remove the top_grip_height business from the theme
b) make the focus indicator based on border width and padding, not the handle height
c) add 2 more windows for the top corners for resizing, much easier to find them now. also base their width on padding, not the handle height or other weird things
2007-03-08 01:26:03 +00:00
Dana Jansens
b5af5ad3e8 was using paddingx for y-things, oops 2007-03-08 01:08:44 +00:00
Dana Jansens
ec304c9e43 scary commit..but here goes.
YOUR THEMES ARE NOW OFFICIALLY BROKEN.

Openbox has just moved it's theme format to an XML based one. The details of
this format can be found in data/themerc.xsd (and http://openbox.org/themerc.xsd

ALSO! This is very good and important and stuff! In the tools directory you
will find THEMETOXML ! This tool takes a themerc on stdin, and spits out
the same theme in theme.xml format. So this is all you need to do to update
your themes.

PLEASE NOTE: This themetoxml does _not_ install itself anywhere. It simply
builds and then lives out in its tools/themetoxml directory, and that's it. So
if you want to use it, that is where to find it.

In moving to the new XML format, a number of additions/changes to the theme
engine have been made. Themetoxml takes these into account and will set all
the new things appropriately to make your theme look the same as it always has.

New additions include..
* padding now has an horizontal and vertical component, instead of being one number
* menus can have different borders than windows (color and size)
* menu offset can now be negative. it's a little weird, but someone will want it no doubt
* fonts are no longer controled by the theme at all, however font shadowing is, and on that note..
* font shadows are now any color you want, not just black and white
* you can now set the shadow anywhere you can set the text's color, so you have more control, i.e. you can set shadow on active menu items but not inactive, or disabled, etc.
* every color now has an alpha channel. at the moment they don't do anything, besides the font shadow one, but it leaves room for future explorations. it is REALLY HIGHLY RECOMMENDED that you set the alpha to 255 all the time, until such time as it could be useful. otherwise one day your theme may turn awful for people.
* font colors are in the range 0-255, in case you were wondering, and they have to be specified in decimal
* if you'd like to change you font's you can do so in your configuration file. this is how it is going to stay. changing the font in the theme assumes too much about peoples eye sight and locality and stuff. it doesn't belong there, sorry. the system-wide default rc.xml includes the new font settings for your viewing pleasure, and ill drop an example of it below.
* shadows can now be positioned in any direction, they have both an x and a y offset which can be negative and positive. and offset of 0,0 will disable the shadow

This isn't a release or anything. If someone had some good ideas about the xml theme format, I'd like to hear them. But I don't think it will be changing much right now beyond where it is. I don't even know how the new functionality will play out for themers, so we'll see.

Whew.. I guess that's it. I'm not sure if I mentioned every little change or not, but oh well. Mileage may vary.. Please send any feedback.

Here's the font configuration example. Hopefully ObConf will let you set this real soon.

<theme>
...
  <font place="ActiveWindow">
    <name>arial,sans</name>
    <size>7</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="InactiveWindow">
    <name>arial,sans</name>
    <size>7</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="MenuTitle">
    <name>arial,sans</name>
    <size>8</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="MenuItem">
    <name>arial,sans</name>
    <size>8</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
</theme>
2007-03-05 15:44:17 +00:00
Dana Jansens
80a6f06c0a support clients which use true transparency 32-bit visuals.
this requires that when a client is using a 32-bit visual, we have to
make the frame windows that sit underneath it to use the same visual (and a
colormap which matches it)
2007-03-02 06:01:16 +00:00
Mikael Magnusson
d3d4aa2987 80 cols 2006-11-15 21:12:06 +00:00
Mikael Magnusson
4d50b21835 update copyright step 1 2006-08-22 16:37:35 +00:00
Mikael Magnusson
7b7f158088 add a means to tell the timer destroy function not to fire when for example freeing its client frame 2006-08-17 20:16:02 +00:00
Mikael Magnusson
1b4ff4e93f close but not quite 2006-08-17 19:26:55 +00:00
Mikael Magnusson
a2f2fefeff add a client destructor to frame.c so it doesn't try to keep flashing a free'd frame 2006-08-17 16:16:37 +00:00
Mikael Magnusson
bc1f845ada resize label after background pixmap has updated to avoid display problems 2006-03-13 11:51:40 +00:00
Mikael Magnusson
1fad2da07f more 64 bit fixes 2005-10-07 17:00:35 +00:00
Mikael Magnusson
1cfb65bc40 add a config option hideDisabled in the theme section that hides disabled buttons instead of showing them as disabled, based on patch in bug #2310 2005-07-14 13:44:33 +00:00
Mikael Magnusson
6ec1881579 c++ comments 2005-07-14 13:23:05 +00:00
Mikael Magnusson
b2b8ad92bf update copyright notices 2004-03-21 11:57:31 +00:00
Mikael Magnusson
335e8acbfc yay no tabs in the source 2004-03-21 01:03:00 +00:00
Mikael Magnusson
a5451fa6fa hopefully fix some stuff with kde tray icons 2004-02-24 20:11:36 +00:00
Dana Jansens
7ae62cc7ef dont make our frame windows override-redirect, so that configure requests are generated if apps try to configure our frame (eg. import -frame) 2003-12-22 18:16:47 +00:00
Dana Jansens
740c5b2a20 consistant glib type usage 2003-10-15 03:59:35 +00:00
Dana Jansens
c9233ddb23 unmap and map the client window when the frame is hidden/shown 2003-10-15 03:01:34 +00:00
Dana Jansens
377d20e7bf use RrColorPixel 2003-10-11 06:47:29 +00:00
Dana Jansens
d38c835cef when the frame is adjusted while the focus_cycle_target is that frame's client, then redraw the indicator 2003-10-09 19:18:20 +00:00
Dana Jansens
4a14e50ae7 indenting 2003-10-02 04:21:37 +00:00
Dana Jansens
f68cf94d35 support the _KDE_NET_WM_FRAME_STRUT hint 2003-09-24 17:17:59 +00:00
Dana Jansens
ebe3091560 const 2003-09-17 08:01:37 +00:00
Dana Jansens
16f46c296d no tabs 2003-09-17 07:44:49 +00:00
Dana Jansens
c4e4760c41 add copyright headers, adjust --version output to include copyright, and --help output to not include version output. 2003-09-17 07:32:52 +00:00
Dana Jansens
88b8398342 add the MoveResize context, which is used while doing a move/resize on a window. Actions bound in this context can be executed with the mouse during a move/resize on a window. 2003-09-17 06:44:04 +00:00
Dana Jansens
13bbcdd86b dont redraw the frames when changing their theme 2003-09-14 21:08:21 +00:00
Dana Jansens
e1b6c6dd90 use theme.show_handle 2003-09-10 17:03:29 +00:00
Dana Jansens
a72371b41f bigtime theme changes. bigtime. 2003-09-08 18:38:52 +00:00
Dana Jansens
fafcb6e476 only remove one flash timer at a time, so all frames dont stop flashing just cuz a window closed 2003-09-03 21:24:37 +00:00
Dana Jansens
806a8c411f add a reconfigure action, also reconfigure on SIGUSR2.
support reconfiguring throughout the entire codebase.
2003-09-03 18:11:39 +00:00
Dana Jansens
5dafdaf285 dont crash when flashing a window when it goes away, remove the timer when dying 2003-09-01 04:30:59 +00:00
Dana Jansens
bd70fff6f9 improved frame flashing code, can start and stop it on command 2003-09-01 03:41:53 +00:00
Dana Jansens
0621e22932 add code to flash the frame 2003-09-01 02:57:19 +00:00
Dana Jansens
9a0c31797a fix border on shaded maximized windows 2003-08-27 18:38:36 +00:00
Dana Jansens
5186d04c61 better handling of maximizing, wrt changing decorations on the windows, and showing the correct decor for the max state especially for windows which dont change size (Xnest) when maximized cuz they are at their maximum size already 2003-08-25 08:49:48 +00:00
Dana Jansens
7e7efa5c1a set the client decorations to match the frame's so that there is not thot to be changes later on whene there were actually none 2003-08-25 08:37:23 +00:00
Dana Jansens
a098c2437e rename the 'root' context to 'desktop' 2003-08-20 23:13:40 +00:00
Dana Jansens
a09984bbc0 add an obscured flag that tracks if the frame is at all obscured 2003-08-20 23:01:56 +00:00
Dana Jansens
6375df675f grab root mouse bindings on desktop windows also, since they are conceptually the desktop. 2003-08-20 06:17:43 +00:00
Dana Jansens
c94341602e dont map the tl/tr invisible grips when the grip decors are turned off 2003-08-05 18:58:18 +00:00
Dana Jansens
2494762dbf a couple frame layout bugfixes hidden inside all this.. wee
fixes for maximizing windows:
 - when you toggledecor, it will reconfigure once, but the new constraints from the decor changes would not be in effect when the window was resized to the contranits. fixed by calling frame_adjust_area first thing ni client_configure_fulll with fake=TRUE which will recalc all the frame geometry without resizing/redrawing anything in the frame. this way the decor can take effect in the geometries.
 - when maxed horizontally, make the client fill the screen, but dont do this by just making it wider than the screen, fit it to the screen and adjust the titlebar/handle as appropriate to keep it all on the screen.
 - when maxed horizontally and vertically, remove the handle from the decorations
2003-08-05 10:31:20 +00:00
Dana Jansens
441041d17d the grips go below the titlebar buttons 2003-08-02 06:40:01 +00:00
Dana Jansens
960a7f0184 invisible resizing areas/grips in the top corners of the window 2003-08-02 06:20:31 +00:00
Dana Jansens
c68f0a0f11 fix a long-lurknig gravity bug 2003-07-31 19:16:04 +00:00
Dana Jansens
54ad34a039 move the titlebar layout from the theme to the rc file 2003-07-30 16:25:08 +00:00
Dana Jansens
b8ba52fabc code cleaning 2003-07-30 06:08:12 +00:00
Dana Jansens
742106511f hover theme elements for window titlebar buttons 2003-07-28 19:21:45 +00:00
Dana Jansens
81af5a8b0c add disabled buttons, instead of now showing buttons at all when they wont do anything, now show a disabled button instead. this severely breaks compatibility with blackbox themes since there is no good way to automiatically create a disabled button that i can think of, so if they dont exist in the theme you get black and white for the button.
when a window cant be resized, its handle is not removed but its grips are.

change allowing the user to disable individual decorations as that is overkill,
instead allow a toggle through the client.decorate boolean.
2003-07-10 23:27:02 +00:00