]> Dogcows Code - chaz/openbox/commitdiff
menus update their values when they are reconfigure()d.
authorDana Jansens <danakj@orodu.net>
Wed, 17 Apr 2002 23:07:11 +0000 (23:07 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 17 Apr 2002 23:07:11 +0000 (23:07 +0000)
the screen, toolbar and slit rc values are reloaded in BScreen::reconfigure() before the menus.
the toolbar and slit rc values are explicitly loaded in their constructors, as is BScreen's.

src/Configmenu.cc
src/Configmenu.h
src/Screen.cc
src/Slit.cc
src/Slit.h
src/Toolbar.cc
src/Toolbar.h
src/openbox.cc

index 9de8864d52500d5f276e8e6652c74c4fd4f34fc7..a12ca5ad1ac1f0f60161302bd4041152a82a34de 100644 (file)
@@ -63,6 +63,10 @@ Configmenu::Configmenu(BScreen &scr) : Basemenu(scr), screen(scr)
                          "Hide toolbar"), 6);
   update();
 
+  setValues();
+}
+
+void Configmenu::setValues() {
   setItemSelected(2, screen.getImageControl()->doDither());
   setItemSelected(3, screen.opaqueMove());
   setItemSelected(4, screen.fullMax());
@@ -71,7 +75,7 @@ Configmenu::Configmenu(BScreen &scr) : Basemenu(scr), screen(scr)
   setItemSelected(7, screen.hideToolbar());
 }
 
-Configmenu::~Configmenu(void) {
+Configmenu::~Configmenu() {
   delete focusmenu;
   delete placementmenu;
 }
@@ -130,7 +134,8 @@ void Configmenu::itemSelected(int button, int index) {
   } // switch
 }
 
-void Configmenu::reconfigure(void) {
+void Configmenu::reconfigure() {
+  setValues();
   focusmenu->reconfigure();
   placementmenu->reconfigure();
 
@@ -152,12 +157,21 @@ Configmenu::Focusmenu::Focusmenu(Configmenu *cm) : Basemenu(cm->screen) {
                          "Auto Raise"), 3);
   update();
 
+  setValues();
+}
+
+void Configmenu::Focusmenu::setValues() {
   setItemSelected(0, !configmenu->screen.sloppyFocus());
   setItemSelected(1, configmenu->screen.sloppyFocus());
   setItemEnabled(2, configmenu->screen.sloppyFocus());
   setItemSelected(2, configmenu->screen.autoRaise());
 }
 
+void Configmenu::Focusmenu::reconfigure() {
+  setValues();
+  Basemenu::reconfigure();
+}
+
 void Configmenu::Focusmenu::itemSelected(int button, int index) {
   if (button != 1)
     return;
@@ -234,6 +248,10 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm) :
                          "Bottom to Top"), BScreen::BottomTop);
   update();
 
+  setValues();
+}
+
+void Configmenu::Placementmenu::setValues() {
   switch (configmenu->screen.placementPolicy()) {
   case BScreen::RowSmartPlacement:
     setItemSelected(0, True);
@@ -264,6 +282,11 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm) :
   setItemSelected(7, !tb);
 }
 
+void Configmenu::Placementmenu::reconfigure() {
+  setValues();
+  Basemenu::reconfigure();
+}
+
 void Configmenu::Placementmenu::itemSelected(int button, int index) {
   if (button != 1)
     return;
index b39fac67c474415bdaccb99b3610eaf72e5f46b7..dd343b6aa4fd85f4287ffa1e1c532570094c6ea5 100644 (file)
@@ -38,9 +38,11 @@ private:
 
   protected:
     virtual void itemSelected(int, int);
+    virtual void setValues();
 
   public:
     Focusmenu(Configmenu *);
+    void reconfigure();
   };
 
   class Placementmenu : public Basemenu {
@@ -49,9 +51,12 @@ private:
 
   protected:
     virtual void itemSelected(int, int);
+    virtual void setValues();
+
 
   public:
     Placementmenu(Configmenu *);
+    void reconfigure();
   };
 
   BScreen &screen;
@@ -63,15 +68,17 @@ private:
 
 protected:
   virtual void itemSelected(int, int);
+  virtual void setValues();
+
 
 public:
   Configmenu(BScreen &);
-  virtual ~Configmenu(void);
+  virtual ~Configmenu();
 
-  inline Basemenu *getFocusmenu(void) { return focusmenu; }
-  inline Basemenu *getPlacementmenu(void) { return placementmenu; }
+  inline Basemenu *getFocusmenu() { return focusmenu; }
+  inline Basemenu *getPlacementmenu() { return placementmenu; }
 
-  void reconfigure(void);
+  void reconfigure();
 };
 
 #endif // __Configmenu_hh
index 251faadd429464f1ad5f960109df48830ff6f31d..50bc4ceb94334df59f4335f3fb131b0e104bb31c 100644 (file)
@@ -249,9 +249,6 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn),
                 openbox.getSessionCursor());
 
   workspaceNames = new LinkedList<char>;
-
-  load();       // load config options from Resources
-
   workspacesList = new LinkedList<Workspace>;
   rootmenuList = new LinkedList<Rootmenu>;
   netizenList = new LinkedList<Netizen>;
@@ -265,6 +262,7 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn),
 
   image_control->setDither(resource.image_dither);
 
+  load();       // load config options from Resources
   LoadStyle();
 
   XGCValues gcv;
@@ -1040,7 +1038,8 @@ void BScreen::save() {
 #ifdef    HAVE_STRFTIME
   // it deletes the current value before setting the new one, so we have to
   // duplicate the current value.
-  setStrftimeFormat(bstrdup(resource.strftime_format)); 
+  std::string s = resource.strftime_format;
+  setStrftimeFormat(s.c_str()); 
 #else // !HAVE_STRFTIME
   setDateFormat(resource.date_format);
   setClock24Hour(resource.clock24hour);
@@ -1211,6 +1210,10 @@ void BScreen::load() {
 
 void BScreen::reconfigure(void) {
   load();
+  toolbar->load();
+#ifdef    SLIT
+  slit->load();
+#endif // SLIT
   LoadStyle();
 
   XGCValues gcv;
index 19796814a664424d1f28b1d652ecb121200f6163..2fbce2d11a7b39cf88028c45828aab86697e7367 100644 (file)
@@ -52,6 +52,7 @@ Slit::Slit(BScreen &scr, Resource &conf) : screen(scr),
   m_direction = Vertical;
   m_ontop = false;
   m_hidden = m_autohide = false;
+  load();
   
   display = screen.getBaseDisplay().getXDisplay();
   frame.window = frame.pixmap = None;
@@ -314,8 +315,6 @@ void Slit::load() {
 }
 
 void Slit::reconfigure(void) {
-  load();
-  
   frame.area.setSize(0, 0);
   LinkedListIterator<SlitClient> it(clientList);
   SlitClient *client;
@@ -710,8 +709,12 @@ Slitmenu::Slitmenu(Slit &sl) : Basemenu(sl.screen), slit(sl) {
 
   update();
 
-  if (slit.onTop()) setItemSelected(2, True);
-  if (slit.autoHide()) setItemSelected(3, True);
+  setValues();
+}
+
+void Slitmenu::setValues() {
+  setItemSelected(2, slit.onTop());
+  setItemSelected(3, slit.autoHide());
 }
 
 
@@ -757,6 +760,7 @@ void Slitmenu::internal_hide(void) {
 
 
 void Slitmenu::reconfigure(void) {
+  setValues();
   directionmenu->reconfigure();
   placementmenu->reconfigure();
 
@@ -776,12 +780,21 @@ Slitmenu::Directionmenu::Directionmenu(Slitmenu &sm)
 
   update();
 
-  if (sm.slit.direction() == Slit::Horizontal)
+  setValues();
+}
+
+
+void Slitmenu::Directionmenu::setValues() {
+  if (slitmenu.slit.direction() == Slit::Horizontal)
     setItemSelected(0, True);
   else
     setItemSelected(1, True);
 }
 
+void Slitmenu::Directionmenu::reconfigure() {
+  setValues();
+}
+
 
 void Slitmenu::Directionmenu::itemSelected(int button, int index) {
   if (button != 1)
index cb6b454af68a58a54760393709250fdb51ccef78..f7feb6b16560a76b05e3f97ef27077f7698585b2 100644 (file)
@@ -42,9 +42,11 @@ private:
 
   protected:
     virtual void itemSelected(int, int);
+    virtual void setValues();
 
   public:
     Directionmenu(Slitmenu &);
+    void reconfigure();
   };
 
   class Placementmenu : public Basemenu {
@@ -71,7 +73,7 @@ private:
 protected:
   virtual void itemSelected(int, int);
   virtual void internal_hide();
-
+  virtual void setValues();
 
 public:
   Slitmenu(Slit &);
index f5aa7f90d4d291b8f4feae95929cace75b98a4ac..d0753aab9bfc7575d4e0bf7e27af90641a6609d8 100644 (file)
@@ -73,6 +73,7 @@ Toolbar::Toolbar(BScreen &scrn, Resource &conf) : screen(scrn),
   m_placement = BottomCenter;
   m_ontop = false;
   m_hidden = m_autohide = false;
+  load();
 
   // get the clock updating every minute
   clock_timer = new BTimer(openbox, *this);
@@ -1271,9 +1272,13 @@ Toolbarmenu::Toolbarmenu(Toolbar &tb) : Basemenu(tb.screen), toolbar(tb) {
                          "Edit current workspace name"), 3);
 
   update();
+  setValues();
+}
 
-  if (toolbar.onTop()) setItemSelected(1, True);
-  if (toolbar.autoHide()) setItemSelected(2, True);
+void Toolbarmenu::setValues() {
+  setItemSelected(1, toolbar.onTop());
+  setItemSelected(2, toolbar.autoHide());
 }
 
 
@@ -1328,6 +1333,7 @@ void Toolbarmenu::internal_hide() {
 
 
 void Toolbarmenu::reconfigure() {
+  setValues();
   placementmenu->reconfigure();
 
   Basemenu::reconfigure();
@@ -1356,7 +1362,6 @@ Toolbarmenu::Placementmenu::Placementmenu(Toolbarmenu &tm)
   update();
 }
 
-
 void Toolbarmenu::Placementmenu::itemSelected(int button, int index) {
   if (button != 1)
     return;
index ecf2fd2a194cf8b1a8ac929c41220f4ae3e924d9..bf67b506d209f73731f14594d23a158379935977 100644 (file)
@@ -56,6 +56,7 @@ private:
 protected:
   virtual void itemSelected(int, int);
   virtual void internal_hide();
+  virtual void setValues();
 
 public:
   Toolbarmenu(Toolbar &);
index c86b2124b804d967f9c13874bb2ad39552b510c7..25d274f1ae60e7425d3ee9773fa351618be3a814 100644 (file)
@@ -1072,7 +1072,6 @@ void Openbox::real_reconfigure() {
   grab();
 
   load();
-  save();
   
   for (int i = 0, n = menuTimestamps->count(); i < n; i++) {
     MenuTimestamp *ts = menuTimestamps->remove(0);
This page took 0.038814 seconds and 4 git commands to generate.