MetacityThemingLimitation

From Mandriva Community Wiki

Jump to: navigation, search

[edit] Window Manager theme limitation for GNOME (Metacity)

Here are what are needed (ie what need to be designed by graphic team) to implement a Mandrake theme for GNOME window manager (ie window border). This is based on http://developer.gnome.org/doc/tutorials/metacity/metacity-themes.html

Currently, there are 6 differents types of window:

  • normal : a normal window (just like MCC, or any other application)
  • dialog : a dialog window (like a preference sub-window)
  • modal dialog : same as above, except this dialog is modal : it prevent user to access the application main window
  • menu : when you have a window only window (ie a floating menu)
  • utility : small window for utilities, like a floating toolbar
  • border window : this is for window without any decoration (like xmms or when a window is displayed in full-screen mode)

We don't have to implement the 6 window types as visually different types but we can..

For each type of window, there are 3 independent possible states :

  • window has focus (or not)
  • window is (un)maximized / (un)shaded (only the window top bar is visible) or both
  • window can be vertically, horizontaly or both resized..

Windows can be either rectangular (with 90° angle) or rounded (can't be customized, rounding is hardcoded).

On the window bar, there are 6 positions available for button:

  • 3 on the left side of the bar
  • 3 on the right side of the bar

The following function are available for buttons on the bar:

  • close
  • maximize
  • minimize
  • menu

each in 3 states : normal, pressed and prelight. It is not possible to do transition effect between one state to another or to do animations when in a specific state.

The window menu can have the following buttons near text entry :

  • close
  • maximize
  • minimize
  • unmaximize

each in the following state (normal, prelight, active, selected, insensitive)

It is not possible to add a "resize" grip button on the window bar.

The following graphical primitives are available to compose the theme :

  • line
  • rectangle
  • arc
  • apply a color on a image (or any other operations)
  • draw a linear gradient (either vertical, horizontal or diagonal)
  • images
  • small arrow (like the one in scrollbars)

Alpha layers are supported when combining those primitives to create window borders.

Transparency with system background is not supported.

Personal tools