On Feb 18, 2005, at 1:38 AM, MJ Ray wrote:

Btw. I'm not going to consider GNUstep for my apps, unless it has an EWMH mode.

Do we know which EWMH are missing?


Yes. See back/Documentation/Back/Standards.txt






EWMH hints
==================================

[ ] : not implemented
[*] : partially implemented
[+] : supported
[-] : not applicable/ignored

Root Window Properties (and Related Messages)
[-] _NET_SUPPORTED                      // WM property
[-] _NET_CLIENT_LIST                    // WM property
[-] _NET_NUMBER_OF_DESKTOPS             // WM property
[ ] _NET_DESKTOP_GEOMETRY               // use this in preference to X calls?
[-] _NET_DESKTOP_VIEWPORT               // WM property
[-] _NET_CURRENT_DESKTOP                // WM property
[-] _NET_DESKTOP_NAMES                  // WM property
[ ] _NET_ACTIVE_WINDOW                  // "main" window?
[-] _NET_WORKAREA                       // WM property
[-] _NET_SUPPORTING_WM_CHECK            // WM property
[-] _NET_VIRTUAL_ROOTS                  // WM property
[-] _NET_DESKTOP_LAYOUT                 // Pager property
[-] _NET_SHOWING_DESKTOP                // WM property
    
Other Root Window Messages
[-] _NET_CLOSE_WINDOW                   // Pager property
[-] _NET_MOVERESIZE_WINDOW              // Pager property
[ ] _NET_WM_MOVERESIZE                  // use with in-view mouse control?
    
Application Window Properties
[ ] _NET_WM_NAME                        // need to implement
[-] _NET_WM_VISIBLE_NAME                // WM property
[ ] _NET_WM_ICON_NAME                   // need to implement
[-] _NET_WM_VISIBLE_ICON_NAME           // WM property
[-] _NET_WM_DESKTOP                     // GNUstep apps don't need this(?)
[+] _NET_WM_WINDOW_TYPE                 // use with or replace Window Level?
[-] _NET_WM_STATE                       // probably don't need this.
[-] _NET_WM_ALLOWED_ACTIONS             // WM property
[-] _NET_WM_STRUT                       // GNUstep apps don't need this(?)
[-] _NET_WM_STRUT_PARTIAL               // GNUstep apps don't need this(?)
[-] _NET_WM_ICON_GEOMETRY               // GNUstep apps don't need this(?)
[ ] _NET_WM_ICON                        // would be nice to support
[+] _NET_WM_PID                         
[-] _NET_WM_HANDLED_ICONS               // Pager property
[ ] _NET_WM_USER_TIME                   // need to figure this out...
    
Window Manager Protocols
[ ] _NET_WM_PING                        // need to implement



WindowMaker Protocols and Client Messages
=========================================

_GNUSTEP_WM_MINIATURIZE_WINDOW
The _GNUSTEP_WM_MINIATURIZE_WINDOW protocol tells the WM that the
application can handle miniaturization of a window. The WM can then
send a CLientMessage of the WM_PROTOCOLS type telling the app to
miniaturize the window.

_GNUSTEP_TITLEBAR_STATE
The app can send a ClientMessage with the _GNUSTEP_TITLEBAR_STATE
message type, telling the WM which state the window is in, allowing the
WM to change the appearance of the title bar appropriately. The states are:
Key Window(0), Normal Window(1), Main Window(2). The main window is the window
the user is currently working in. The key window is the window that has
keyboard focus.

_GNUSTEP_WM_ATTR
Property for setting various attributes about the window. Can also
be sent as a Client Message for faster handling.  The structure
passed in the property request is:
  typedef struct {
    CARD32 flags;
    CARD32 window_style;
    CARD32 window_level;
    CARD32 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
    CARD32 extra_flags;
  } GNUstepWMAttributes;

where flags is a set of ORed values:
WindowStyle(1<<0), WindowLevel(1<<1), MiniaturizePixmap(1<<3),
ClosePixmap(1<<4), MiniaturizeMask(1<<5), CloseMask(1<<6),
ExtraFlags(1<<7). 

If ExtraFlags is set, then extra_flags can be:
DocumentEditedFlag(1<<0), WindowWillResizeNotificationsFlag(1<<1),
WindowWillMoveNotificationsFlag(1<<2), NoApplicationIconFlag(1<<5),
WMFHideOtherApplications(10), WMFHideApplication(12)

Window Style can be an ORed value consiting of any one or more of
NSBorderlessWindowMask(0), NSTitledWindowMask(1),
NSClosableWindowMask(2), NSMiniaturizableWindowMask(4),
NSResizableWindowMask(8), NSIconWindowMask(64) NSMiniWindowMask(128).

Window Level can be one of NSDesktopWindowLevel(-1000),
NSNormalWindowLevel(0), NSFloatingWindowLevel(3),
NSSubmenuWindowLevel(3), NSTornOffMenuWindowLevel(3),
NSMainMenuWindowLevel(20), NSStatusWindowLevel(21),
NSModalPanelWindowLevel(100), NSPopUpMenuWindowLevel(101),
NSScreenSaverWindowLevel(1000).



_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to