1 /* GNUstep.h-- stuff for compatibility with GNUstep applications 2 * 3 * Window Maker window manager 4 * 5 * Copyright (c) 1997-2003 Alfredo K. Kojima 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along 18 * with this program; if not, write to the Free Software Foundation, Inc., 19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 */ 21 22 23 #ifndef WMGNUSTEP_H_ 24 #define WMGNUSTEP_H_ 25 26 #include <X11/Xproto.h> 27 28 29 #define GNUSTEP_WM_MINIATURIZE_WINDOW "_GNUSTEP_WM_MINIATURIZE_WINDOW" 30 31 #define GNUSTEP_WM_ATTR_NAME "_GNUSTEP_WM_ATTR" 32 33 #define GNUSTEP_TITLEBAR_STATE "_GNUSTEP_TITLEBAR_STATE" 34 enum { 35 WMTitleBarKey = 0, 36 WMTitleBarNormal = 1, 37 WMTitleBarMain = 2 38 }; 39 40 #ifndef _DEFINED_GNUSTEP_WINDOW_INFO 41 #define _DEFINED_GNUSTEP_WINDOW_INFO 42 /* 43 * Window levels are taken from GNUstep (gui/AppKit/NSWindow.h) 44 * NSDesktopWindowLevel intended to be the level at which things 45 * on the desktop sit ... so you should be able 46 * to put a desktop background just below it. 47 * 48 * Applications are actually permitted to use any value in the 49 * range INT_MIN+1 to INT_MAX 50 */ 51 enum { 52 WMDesktopWindowLevel = -1000, /* GNUstep addition */ 53 WMNormalWindowLevel = 0, 54 WMFloatingWindowLevel = 3, 55 WMSubmenuWindowLevel = 3, 56 WMTornOffMenuWindowLevel = 3, 57 WMMainMenuWindowLevel = 20, 58 WMDockWindowLevel = 21, /* Deprecated - use NSStatusWindowLevel */ 59 WMStatusWindowLevel = 21, 60 WMModalPanelWindowLevel = 100, 61 WMPopUpMenuWindowLevel = 101, 62 WMScreenSaverWindowLevel = 1000 63 }; 64 65 66 /* window attributes */ 67 enum { 68 WMBorderlessWindowMask = 0, 69 WMTitledWindowMask = 1, 70 WMClosableWindowMask = 2, 71 WMMiniaturizableWindowMask = 4, 72 WMResizableWindowMask = 8, 73 WMIconWindowMask = 64, 74 WMMiniWindowMask = 128 75 }; 76 #endif 77 78 /* window manager -> appkit notifications */ 79 #define GNUSTEP_WM_NOTIFICATION "GNUSTEP_WM_NOTIFICATION" 80 81 82 typedef struct { 83 CARD32 flags; 84 CARD32 window_style; 85 CARD32 window_level; 86 CARD32 reserved; 87 Pixmap miniaturize_pixmap; /* pixmap for miniaturize button */ 88 Pixmap close_pixmap; /* pixmap for close button */ 89 Pixmap miniaturize_mask; /* miniaturize pixmap mask */ 90 Pixmap close_mask; /* close pixmap mask */ 91 CARD32 extra_flags; 92 } GNUstepWMAttributes; 93 94 #define GSWindowStyleAttr (1<<0) 95 #define GSWindowLevelAttr (1<<1) 96 #define GSMiniaturizePixmapAttr (1<<3) 97 #define GSClosePixmapAttr (1<<4) 98 #define GSMiniaturizeMaskAttr (1<<5) 99 #define GSCloseMaskAttr (1<<6) 100 #define GSExtraFlagsAttr (1<<7) 101 102 /* extra flags */ 103 #define GSDocumentEditedFlag (1<<0) 104 105 #define GSNoApplicationIconFlag (1<<5) 106 107 108 #define WMFHideOtherApplications 10 109 #define WMFHideApplication 12 110 111 #endif 112 113