1 /* -*-c-*- */ 2 /* vim: set ts=8 shiftwidth=8: */ 3 4 #ifndef FvwmProxy_h 5 #define FvwmProxy_h 6 7 /* TODO check what headers we really need */ 8 #include <stdio.h> 9 #include <signal.h> 10 #include <fcntl.h> 11 #include <sys/wait.h> 12 #include <ctype.h> 13 14 #include <X11/Xlib.h> 15 #include <X11/Xutil.h> 16 #include <X11/Xproto.h> 17 #include <X11/Xatom.h> 18 #include <X11/Intrinsic.h> 19 #include <X11/keysym.h> 20 #include <X11/cursorfont.h> 21 22 #include "libs/Module.h" 23 #include "libs/fvwmlib.h" 24 #include "libs/Colorset.h" 25 #include "libs/fvwmsignal.h" 26 #include "fvwm/fvwm.h" 27 #include "libs/vpacket.h" 28 #include "libs/PictureBase.h" 29 30 typedef struct sWindowName 31 { 32 char *name; 33 struct sWindowName *next; 34 struct 35 { 36 unsigned soft_raise : 2; 37 unsigned pad0 : 2; 38 unsigned hard_raise : 2; 39 unsigned pad1 : 2; 40 41 unsigned soft_desk : 2; 42 unsigned pad2 : 2; 43 unsigned hard_desk : 2; 44 unsigned pad3 : 2; 45 46 unsigned soft_drag : 2; 47 unsigned pad4 : 2; 48 unsigned hard_drag : 2; 49 unsigned pad5 : 2; 50 51 unsigned soft_icon : 2; 52 unsigned pad6 : 2; 53 unsigned hard_icon : 2; 54 unsigned pad7 : 2; 55 56 unsigned pad8 : 4; 57 58 unsigned is_soft : 1; 59 unsigned pad9 : 4; 60 61 unsigned is_weak : 1; 62 } flags; 63 } WindowName; 64 65 typedef struct sProxyGroup 66 { 67 char *name; 68 WindowName *includes; 69 WindowName *excludes; 70 struct sProxyGroup *next; 71 struct 72 { 73 74 unsigned soft_raise : 2; 75 unsigned pad0 : 2; 76 unsigned hard_raise : 2; 77 unsigned pad1 : 2; 78 79 unsigned soft_desk : 2; 80 unsigned pad2 : 2; 81 unsigned hard_desk : 2; 82 unsigned pad3 : 2; 83 84 unsigned soft_drag : 2; 85 unsigned pad4 : 2; 86 unsigned hard_drag : 2; 87 unsigned pad5 : 2; 88 89 unsigned soft_icon : 2; 90 unsigned pad6 : 2; 91 unsigned hard_icon : 2; 92 unsigned pad7 : 2; 93 94 unsigned pad8 : 4; 95 96 unsigned auto_include : 1; 97 unsigned pad9 : 3; 98 99 unsigned auto_soft : 1; 100 unsigned pad10 : 3; 101 102 unsigned isolated : 1; 103 unsigned pad11 : 3; 104 105 unsigned ignore_ids : 1; 106 } flags; 107 } ProxyGroup; 108 109 typedef struct sGeometryStamp 110 { 111 int x,y; 112 int w,h; 113 Window window; 114 } GeometryStamp; 115 116 typedef struct sProxyWindow 117 { 118 Window window; 119 int leader; 120 int pid; 121 int ppid; 122 int x,y; 123 int w,h; 124 int border_width; 125 int title_height; 126 int goal_width; 127 int goal_height; 128 int incx,incy; 129 int desk; 130 int stack; 131 int stack_desired; 132 int stack_tmp; 133 int group; 134 ProxyGroup *proxy_group; 135 Window proxy; 136 int proxyx,proxyy; 137 int proxyw,proxyh; 138 int tweakx,tweaky; 139 int pending_config; 140 int raised; 141 FvwmPicture picture; 142 char *name; 143 char *iconname; 144 struct sProxyWindow *next; 145 struct sProxyWindow *prev; 146 struct 147 { 148 unsigned is_shown : 1; 149 unsigned is_iconified : 1; 150 unsigned is_soft : 1; 151 unsigned is_isolated : 1; 152 } flags; 153 } ProxyWindow; 154 155 #endif /* FvwmProxy_h */ 156