Window manager

From GNUstepWiki

(Difference between revisions)
Revision as of 06:22, 29 March 2007
Martin (Talk | contribs)

← Previous diff
Revision as of 06:30, 29 March 2007
Martin (Talk | contribs)

Next diff →
Line 8: Line 8:
unsigned long reserved unsigned long reserved
Pixmap miniaturize_pixmap; // pixmap for miniaturize button Pixmap miniaturize_pixmap; // pixmap for miniaturize button
- Pixmap close_pixmap; // pixmap for close button.+ Pixmap close_pixmap; // pixmap for close button.
- Pixmap miniaturize_mask; // miniaturize pixmap mask+ Pixmap miniaturize_mask; // miniaturize pixmap mask
- Pixmap close_mask; // close pixmap mask+ Pixmap close_mask; // close pixmap mask
unsigned long extra_flags; unsigned long extra_flags;
 +
 + #define GSWindowStyleAttr (1<<0)
 + #define GSWindowLevelAttr (1<<1)
 + #define GSMiniaturizePixmapAttr (1<<3)
 + #define GSClosePixmapAttr (1<<4)
 + #define GSMiniaturizeMaskAttr (1<<5)
 + #define GSCloseMaskAttr (1<<6)
 + #define GSExtraFlagsAttr (1<<7)
 + #define GSDocumentEditedFlag (1<<0)
 + #define GSWindowWillResizeNotificationsFlag (1<<1)
 + #define GSWindowWillMoveNotificationsFlag (1<<2)
 + #define GSNoApplicationIconFlag (1<<5)
 + #define WMFHideOtherApplications 10
 + #define WMFHideApplication 12
 +
 +=Window Level=
 +GNUstep needs arbitrary window levels. EWMH define these two:
 + _NET_WM_STATE_ABOVE, ATOM
 + _NET_WM_STATE_BELOW, ATOM

Revision as of 06:30, 29 March 2007

In Windows and Mac OS X the window manager is tied into the OS. That's not the case for Linux or BSD. Window Maker is the recommended window manager for GNUstep, but a standard feature-set is needed. GNUstep-based applications have additional needs beyond traditional window managers, like handling the dock icon or the menus. Collecting the requirements here will lead to a specification, so any window manager can clearly state whether or not it is GNUstep-compliant.

Backend WM Attributes

Headers/x11/XGServerWindow.h defines

 unsigned long flags
 unsigned long window_style
 unsigned long window_level
 unsigned long reserved
 Pixmap miniaturize_pixmap;    // pixmap for miniaturize button
 Pixmap close_pixmap;          // pixmap for close button.
 Pixmap miniaturize_mask;      // miniaturize pixmap mask
 Pixmap close_mask;            // close pixmap mask
 unsigned long extra_flags;
 #define GSWindowStyleAttr                   (1<<0)
 #define GSWindowLevelAttr                   (1<<1)
 #define GSMiniaturizePixmapAttr             (1<<3)
 #define GSClosePixmapAttr                   (1<<4)
 #define GSMiniaturizeMaskAttr               (1<<5)
 #define GSCloseMaskAttr                     (1<<6)
 #define GSExtraFlagsAttr                    (1<<7)
 #define GSDocumentEditedFlag                (1<<0)
 #define GSWindowWillResizeNotificationsFlag (1<<1)
 #define GSWindowWillMoveNotificationsFlag   (1<<2)
 #define GSNoApplicationIconFlag             (1<<5)
 #define WMFHideOtherApplications            10
 #define WMFHideApplication                  12

Window Level

GNUstep needs arbitrary window levels. EWMH define these two:

 _NET_WM_STATE_ABOVE, ATOM
 _NET_WM_STATE_BELOW, ATOM