Difference between revisions of "Window manager"

From GNUstepWiki
Jump to navigation Jump to search
 
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