]> Dogcows Code - chaz/openbox/blobdiff - src/Window.hh
Take menu file from rc file if it isn't specified on the command line.
[chaz/openbox] / src / Window.hh
index 105aef166d6cbcad09cba823b381066414b9a1e6..b923c4bfe14f8a597ab87cee2246142eb18d0778 100644 (file)
@@ -134,6 +134,7 @@ private:
 
   unsigned int window_number;
   unsigned long current_state;
+  unsigned int mod_mask;    // the mod mask used to grab buttons
 
   enum FocusMode { F_NoInput = 0, F_Passive,
                    F_LocallyActive, F_GloballyActive };
@@ -190,9 +191,9 @@ private:
   /*
    * what decorations do we have?
    * this is based on the type of the client window as well as user input
-   * the menu is not really decor, but it goes hand in hand with the decor
    */
   DecorationFlags decorations;
+  DecorationFlags mwm_decorations;
   Corner resize_dir;
   WindowType window_type;
 
@@ -216,20 +217,20 @@ private:
    */
 
   struct _frame {
-    // u -> unfocused, f -> has focus
+    // u -> unfocused, f -> has focus, p -> pressed
     unsigned long ulabel_pixel, flabel_pixel, utitle_pixel,
       ftitle_pixel, uhandle_pixel, fhandle_pixel, ubutton_pixel,
-      fbutton_pixel, pbutton_pixel, uborder_pixel, fborder_pixel,
-      ugrip_pixel, fgrip_pixel;
+      fbutton_pixel, pfbutton_pixel, pubutton_pixel,
+      uborder_pixel, fborder_pixel, ugrip_pixel, fgrip_pixel;
     Pixmap ulabel, flabel, utitle, ftitle, uhandle, fhandle,
-      ubutton, fbutton, pbutton, ugrip, fgrip;
+      ubutton, fbutton, pfbutton, pubutton, ugrip, fgrip;
 
     Window window,       // the frame
       plate,             // holds the client
       title,
       label,
       handle,
-      close_button, iconify_button, maximize_button,
+      close_button, iconify_button, maximize_button, stick_button,
       right_grip, left_grip;
 
     /*
@@ -254,9 +255,10 @@ private:
 
   bool getState(void);
   Window createToplevelWindow();
-  Window createChildWindow(Window parent, Cursor = None);
+  Window createChildWindow(Window parent, unsigned long event_mask,
+                           Cursor = None);
 
-  void getWindowType(void);
+  bool getWindowType(void);
   void updateStrut(void);
   void getWMName(void);
   void getWMIconName(void);
@@ -283,19 +285,27 @@ private:
   void destroyIconifyButton(void);
   void createMaximizeButton(void);
   void destroyMaximizeButton(void);
+  void createStickyButton(void);
+  void destroyStickyButton(void);
   void redrawWindowFrame(void) const;
   void redrawLabel(void) const;
   void redrawAllButtons(void) const;
+  void BlackboxWindow::redrawButton(bool pressed, Window win,
+                                    Pixmap fppix, unsigned long fppixel,
+                                    Pixmap uppix, unsigned long uppixel,
+                                    Pixmap fpix, unsigned long fpixel,
+                                    Pixmap upix, unsigned long upixel) const;
   void redrawCloseButton(bool pressed) const;
   void redrawIconifyButton(bool pressed) const;
   void redrawMaximizeButton(bool pressed) const;
+  void redrawStickyButton(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 doWorkspaceWarping(int x_root, int y_root, int &dx);
   void doWindowSnapping(int &dx, int &dy);
   void endMove(void);
   void doResize(int x_root, int y_root);
@@ -325,7 +335,10 @@ public:
 
   // is a 'normal' window? meaning, a standard client application
   inline bool isNormal(void) const
-  { return window_type == Type_Dialog || window_type == Type_Normal; }
+  { return window_type == Type_Dialog || window_type == Type_Normal ||
+           window_type == Type_Toolbar || window_type == Type_Utility; }
+  inline bool isTopmost(void) const
+  { return window_type == Type_Toolbar || window_type == Type_Utility; }
   inline bool isDesktop(void) const { return window_type == Type_Desktop; }
   
   inline bool hasTitlebar(void) const { return decorations & Decor_Titlebar; }
@@ -375,6 +388,8 @@ public:
 
   void beginMove(int x_root, int y_root);
   void beginResize(int x_root, int y_root, Corner dir);
+  void enableDecor(bool enable);
+  void setupDecor();
   void setFocusFlag(bool focus);
   void iconify(void);
   void deiconify(bool reassoc = True, bool raise = True);
@@ -410,6 +425,7 @@ public:
 
 #ifdef    SHAPE
   void configureShape(void);
+  void clearShape(void);
   void shapeEvent(XShapeEvent * /*unused*/);
 #endif // SHAPE
 
This page took 0.028373 seconds and 4 git commands to generate.