X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FSlit.hh;fp=src%2FSlit.hh;h=85b49d7d06532260c8ebd160c55de89d724da363;hb=0305cbdc3ae8525c74b2bb9b23884035549e3407;hp=c0484c2f294ba2b9301ce18afcfc30a041fa64cc;hpb=60b2990e397faccd6a2f4f1cf7f2285e45fb1876;p=chaz%2Fopenbox diff --git a/src/Slit.hh b/src/Slit.hh index c0484c2f..85b49d7d 100644 --- a/src/Slit.hh +++ b/src/Slit.hh @@ -30,6 +30,7 @@ extern "C" { } #include +#include #include "Screen.hh" #include "Basemenu.hh" @@ -44,24 +45,30 @@ private: private: Directionmenu(const Directionmenu&); Directionmenu& operator=(const Directionmenu&); + Slit *slit; protected: virtual void itemSelected(int button, unsigned int index); - + virtual void setValues(void); + public: Directionmenu(Slitmenu *sm); + virtual void reconfigure(void); }; class Placementmenu : public Basemenu { private: Placementmenu(const Placementmenu&); Placementmenu& operator=(const Placementmenu&); + Slit *slit; protected: virtual void itemSelected(int buton, unsigned int index); + virtual void setValues(void); public: Placementmenu(Slitmenu *sm); + virtual void reconfigure(void); }; Directionmenu *directionmenu; @@ -103,10 +110,13 @@ private: typedef std::list SlitClientList; bool on_top, hidden, do_auto_hide; + int direction, placement; + std::string slitstr; Display *display; Blackbox *blackbox; BScreen *screen; + Configuration *config; BTimer *timer; Strut strut; @@ -137,6 +147,13 @@ public: inline bool isOnTop(void) const { return on_top; } inline bool isHidden(void) const { return hidden; } inline bool doAutoHide(void) const { return do_auto_hide; } + inline int getPlacement(void) const { return placement; } + inline int getDirection(void) const { return direction; } + + void saveOnTop(bool); + void saveAutoHide(bool); + void savePlacement(int); + void saveDirection(int); inline Slitmenu *getMenu(void) { return slitmenu; } @@ -149,13 +166,13 @@ public: inline unsigned int getWidth(void) const { return frame.rect.width(); } inline unsigned int getExposedWidth(void) const { - if (screen->getSlitDirection() == Vertical && do_auto_hide) + if (direction == Vertical && do_auto_hide) return screen->getBevelWidth(); return frame.rect.width(); } inline unsigned int getHeight(void) const { return frame.rect.height(); } inline unsigned int getExposedHeight(void) const { - if (screen->getSlitDirection() == Horizontal && do_auto_hide) + if (direction == Horizontal && do_auto_hide) return screen->getBevelWidth(); return frame.rect.height(); } @@ -163,6 +180,8 @@ public: void addClient(Window w); void removeClient(SlitClient *client, bool remap = True); void removeClient(Window w, bool remap = True); + void load_rc(void); + void save_rc(void); void reconfigure(void); void updateSlit(void); void reposition(void);