min_width, min_height, // can not be resized smaller
max_width, max_height, // can not be resized larger
width_inc, height_inc, // increment step
+#if 0 // not supported at the moment
min_aspect_x, min_aspect_y, // minimum aspect ratio
max_aspect_x, max_aspect_y, // maximum aspect ratio
+#endif
base_width, base_height,
win_gravity;
- unsigned long initial_state, normal_hint_flags, wm_hint_flags;
+ unsigned long initial_state, normal_hint_flags;
} client;
FunctionFlags functions;
void getMWMHints(void);
bool getBlackboxHints(void);
void getTransientInfo(void);
- bool isKDESystrayWindow(void);
void setNetWMAttributes(void);
void associateClientWindow(void);
void decorate(void);
void destroyIconifyButton(void);
void createMaximizeButton(void);
void destroyMaximizeButton(void);
- void redrawLabel(void);
- void redrawAllButtons(void);
- void redrawCloseButton(bool pressed);
- void redrawIconifyButton(bool pressed);
- void redrawMaximizeButton(bool pressed);
- void restoreGravity(void);
- void setGravityOffsets(void);
+ void redrawWindowFrame(void) const;
+ void redrawLabel(void) const;
+ void redrawAllButtons(void) const;
+ void redrawCloseButton(bool pressed) const;
+ void redrawIconifyButton(bool pressed) const;
+ void redrawMaximizeButton(bool pressed) const;
+ void applyGravity(Rect &r);
+ void restoreGravity(Rect &r);
void setAllowedActions(void);
void setState(unsigned long new_state);
void upsize(void);
void doMove(int x_root, int y_root);
+ bool doWorkspaceWarping(int x_root, int y_root, int dx, int dy);
+ void doWindowSnapping(int &dx, int &dy);
void endMove(void);
void doResize(int x_root, int y_root);
void endResize(void);
inline bool isMaximizable(void) const { return functions & Func_Maximize; }
inline bool isResizable(void) const { return functions & Func_Resize; }
inline bool isClosable(void) const { return functions & Func_Close; }
- inline bool isDesktop(void) const { return window_type == Type_Desktop; }
+ // is a 'normal' window? meaning, a standard client application
+ inline bool isNormal(void) const
+ { return window_type == Type_Dialog || window_type == Type_Normal; }
+ inline bool isDesktop(void) const { return window_type == Type_Desktop; }
+
inline bool hasTitlebar(void) const { return decorations & Decor_Titlebar; }
inline const BlackboxWindowList &getTransients(void) const
void shade(void);
void stick(void);
void reconfigure(void);
- void updateFocusModel(void);
+ void grabButtons(void);
+ void ungrabButtons(void);
void installColormap(bool install);
void restore(bool remap);
void configure(int dx, int dy, unsigned int dw, unsigned int dh);
void setWorkspace(unsigned int n);
- void changeBlackboxHints(BlackboxHints *net);
+ void changeBlackboxHints(const BlackboxHints *net);
void restoreAttributes(void);
- void buttonPressEvent(XButtonEvent *be);
- void buttonReleaseEvent(XButtonEvent *re);
- void motionNotifyEvent(XMotionEvent *me);
- void destroyNotifyEvent(XDestroyWindowEvent */*unused*/);
- void mapRequestEvent(XMapRequestEvent *mre);
- void unmapNotifyEvent(XUnmapEvent */*unused*/);
- void reparentNotifyEvent(XReparentEvent */*unused*/);
- void propertyNotifyEvent(Atom atom);
- void exposeEvent(XExposeEvent *ee);
- void configureRequestEvent(XConfigureRequestEvent *cr);
+ void buttonPressEvent(const XButtonEvent *be);
+ void buttonReleaseEvent(const XButtonEvent *re);
+ void motionNotifyEvent(const XMotionEvent *me);
+ void destroyNotifyEvent(const XDestroyWindowEvent */*unused*/);
+ void mapRequestEvent(const XMapRequestEvent *mre);
+ void unmapNotifyEvent(const XUnmapEvent */*unused*/);
+ void reparentNotifyEvent(const XReparentEvent */*unused*/);
+ void propertyNotifyEvent(const XPropertyEvent *pe);
+ void exposeEvent(const XExposeEvent *ee);
+ void configureRequestEvent(const XConfigureRequestEvent *cr);
#ifdef SHAPE
void configureShape(void);