Using some references instead of pointers for the menus.
jump to
@@ -1774,7 +1774,7 @@
cache_max = cmax; #ifdef TIMEDCACHE if (cache_timeout) { - timer = new BTimer(basedisplay, this); + timer = new BTimer(*basedisplay, *this); timer->setTimeout(cache_timeout); timer->start(); } else
@@ -180,8 +180,8 @@ }
} -BScreen::BScreen(Openbox *bb, int scrn) : ScreenInfo(bb, scrn) { - openbox = bb; +BScreen::BScreen(Openbox *ob, int scrn) : ScreenInfo(ob, scrn) { + openbox = ob; event_mask = ColormapChangeMask | EnterWindowMask | PropertyChangeMask | SubstructureRedirectMask | KeyPressMask | KeyReleaseMask |@@ -389,9 +389,9 @@ geom_window, geom_pixmap);
} } - workspacemenu = new Workspacemenu(this); - iconmenu = new Iconmenu(this); - configmenu = new Configmenu(this); + workspacemenu = new Workspacemenu(*this); + iconmenu = new Iconmenu(*this); + configmenu = new Configmenu(*this); Workspace *wkspc = (Workspace *) 0; if (resource.workspaces != 0) {@@ -1696,7 +1696,7 @@
while (rootmenu->getCount()) rootmenu->remove(0); } else { - rootmenu = new Rootmenu(this); + rootmenu = new Rootmenu(*this); } Bool defaultMenu = True;@@ -1984,7 +1984,7 @@ "no menu label defined\n"));
continue; } - Rootmenu *submenu = new Rootmenu(this); + Rootmenu *submenu = new Rootmenu(*this); if (*command) submenu->setLabel(command);@@ -2075,7 +2075,7 @@ if (S_ISDIR(statbuf.st_mode)) {
Rootmenu *stylesmenu; if (newmenu) - stylesmenu = new Rootmenu(this); + stylesmenu = new Rootmenu(*this); else stylesmenu = menu;
@@ -52,13 +52,13 @@
display = screen->getBaseDisplay()->getXDisplay(); frame.window = frame.pixmap = None; - timer = new BTimer(openbox, this); + timer = new BTimer(*openbox, *this); timer->setTimeout(openbox->getAutoRaiseDelay()); timer->fireOnce(True); clientList = new LinkedList<SlitClient>; - slitmenu = new Slitmenu(this); + slitmenu = new Slitmenu(*this); XSetWindowAttributes attrib; unsigned long create_mask = CWBackPixmap | CWBackPixel | CWBorderPixel |@@ -609,14 +609,12 @@ XMoveWindow(display, frame.window, frame.x, frame.y);
} -Slitmenu::Slitmenu(Slit *sl) : Basemenu(sl->screen) { - slit = sl; - +Slitmenu::Slitmenu(Slit &sl) : Basemenu(*sl.screen), slit(sl) { setLabel(i18n->getMessage(SlitSet, SlitSlitTitle, "Slit")); setInternalMenu(); - directionmenu = new Directionmenu(this); - placementmenu = new Placementmenu(this); + directionmenu = new Directionmenu(*this); + placementmenu = new Placementmenu(*this); insert(i18n->getMessage(CommonSet, CommonDirectionTitle, "Direction"), directionmenu);@@ -627,8 +625,8 @@ insert(i18n->getMessage(CommonSet, CommonAutoHide, "Auto hide"), 2);
update(); - if (slit->isOnTop()) setItemSelected(2, True); - if (slit->doAutoHide()) setItemSelected(3, True); + if (slit.isOnTop()) setItemSelected(2, True); + if (slit.doAutoHide()) setItemSelected(3, True); }@@ -647,17 +645,17 @@ if (! item) return;
switch (item->function()) { case 1: { // always on top - Bool change = ((slit->isOnTop()) ? False : True); - slit->on_top = change; + Bool change = ((slit.isOnTop()) ? False : True); + slit.on_top = change; setItemSelected(2, change); - if (slit->isOnTop()) slit->screen->raiseWindows((Window *) 0, 0); + if (slit.isOnTop()) slit.screen->raiseWindows((Window *) 0, 0); break; } case 2: { // auto hide - Bool change = ((slit->doAutoHide()) ? False : True); - slit->do_auto_hide = change; + Bool change = ((slit.doAutoHide()) ? False : True); + slit.do_auto_hide = change; setItemSelected(3, change); break;@@ -668,8 +666,8 @@
void Slitmenu::internal_hide(void) { Basemenu::internal_hide(); - if (slit->doAutoHide()) - slit->timeout(); + if (slit.doAutoHide()) + slit.timeout(); }@@ -681,10 +679,8 @@ Basemenu::reconfigure();
} -Slitmenu::Directionmenu::Directionmenu(Slitmenu *sm) - : Basemenu(sm->slit->screen) { - slitmenu = sm; - +Slitmenu::Directionmenu::Directionmenu(Slitmenu &sm) + : Basemenu(*sm.slit.screen), slitmenu(sm) { setLabel(i18n->getMessage(SlitSet, SlitSlitDirection, "Slit Direction")); setInternalMenu();@@ -695,7 +691,7 @@ Slit::Vertical);
update(); - if (sm->slit->screen->getSlitDirection() == Slit::Horizontal) + if (sm.slit.screen->getSlitDirection() == Slit::Horizontal) setItemSelected(0, True); else setItemSelected(1, True);@@ -709,7 +705,7 @@
BasemenuItem *item = find(index); if (! item) return; - slitmenu->slit->screen->saveSlitDirection(item->function()); + slitmenu.slit.screen->saveSlitDirection(item->function()); if (item->function() == Slit::Horizontal) { setItemSelected(0, True);@@ -720,13 +716,12 @@ setItemSelected(1, True);
} hide(); - slitmenu->slit->reconfigure(); + slitmenu.slit.reconfigure(); } -Slitmenu::Placementmenu::Placementmenu(Slitmenu *sm) - : Basemenu(sm->slit->screen) { - slitmenu = sm; +Slitmenu::Placementmenu::Placementmenu(Slitmenu &sm) + : Basemenu(*sm.slit.screen), slitmenu(sm) { setLabel(i18n->getMessage(SlitSet, SlitSlitPlacement, "Slit Placement")); setMinimumSublevels(3);@@ -764,9 +759,9 @@
BasemenuItem *item = find(index); if (! (item && item->function())) return; - slitmenu->slit->screen->saveSlitPlacement(item->function()); + slitmenu.slit.screen->saveSlitPlacement(item->function()); hide(); - slitmenu->slit->reconfigure(); + slitmenu.slit.reconfigure(); }
@@ -37,30 +37,30 @@ class Slitmenu : public Basemenu {
private: class Directionmenu : public Basemenu { private: - Slitmenu *slitmenu; + Slitmenu &slitmenu; protected: virtual void itemSelected(int, int); public: - Directionmenu(Slitmenu *); + Directionmenu(Slitmenu &); }; class Placementmenu : public Basemenu { private: - Slitmenu *slitmenu; + Slitmenu &slitmenu; protected: virtual void itemSelected(int, int); public: - Placementmenu(Slitmenu *); + Placementmenu(Slitmenu &); }; Directionmenu *directionmenu; Placementmenu *placementmenu; - Slit *slit; + Slit &slit; friend class Directionmenu; friend class Placementmenu;@@ -73,7 +73,7 @@ virtual void internal_hide(void);
public: - Slitmenu(Slit *); + Slitmenu(Slit &); virtual ~Slitmenu(void); inline Basemenu *getDirectionmenu(void) { return directionmenu; }
@@ -33,10 +33,7 @@
#include "BaseDisplay.h" #include "Timer.h" -BTimer::BTimer(BaseDisplay *d, TimeoutHandler *h) { - display = d; - handler = h; - +BTimer::BTimer(BaseDisplay &d, TimeoutHandler &h) : display(d), handler(h) { once = timing = False; }@@ -61,16 +58,16 @@ gettimeofday(&_start, 0);
if (! timing) { timing = True; - display->addTimer(this); + display.addTimer(this); } } void BTimer::stop(void) { timing = False; - display->removeTimer(this); + display.removeTimer(this); } void BTimer::fireTimeout(void) { - if (handler) handler->timeout(); + handler.timeout(); }
@@ -47,8 +47,8 @@
class BTimer { friend class BaseDisplay; private: - BaseDisplay *display; - TimeoutHandler *handler; + BaseDisplay &display; + TimeoutHandler &handler; int timing, once; timeval _start, _timeout;@@ -57,7 +57,7 @@ protected:
void fireTimeout(void); public: - BTimer(BaseDisplay *, TimeoutHandler *); + BTimer(BaseDisplay &, TimeoutHandler &); virtual ~BTimer(void); inline const int &isTiming(void) const { return timing; }
@@ -69,14 +69,14 @@ screen = scrn;
openbox = screen->getOpenbox(); // get the clock updating every minute - clock_timer = new BTimer(openbox, this); + clock_timer = new BTimer(*openbox, *this); timeval now; gettimeofday(&now, 0); clock_timer->setTimeout((60 - (now.tv_sec % 60)) * 1000); clock_timer->start(); hide_handler.toolbar = this; - hide_timer = new BTimer(openbox, &hide_handler); + hide_timer = new BTimer(*openbox, hide_handler); hide_timer->setTimeout(openbox->getAutoRaiseDelay()); hide_timer->fireOnce(True);@@ -90,7 +90,7 @@ new_workspace_name = (char *) 0;
new_name_pos = 0; frame.grab_x = frame.grab_y = 0; - toolbarmenu = new Toolbarmenu(this); + toolbarmenu = new Toolbarmenu(*this); display = openbox->getXDisplay(); XSetWindowAttributes attrib;@@ -1140,13 +1140,11 @@ toolbar->frame.x, toolbar->frame.y);
} -Toolbarmenu::Toolbarmenu(Toolbar *tb) : Basemenu(tb->screen) { - toolbar = tb; - +Toolbarmenu::Toolbarmenu(Toolbar &tb) : Basemenu(*tb.screen), toolbar(tb) { setLabel(i18n->getMessage(ToolbarSet, ToolbarToolbarTitle, "Toolbar")); setInternalMenu(); - placementmenu = new Placementmenu(this); + placementmenu = new Placementmenu(*this); insert(i18n->getMessage(CommonSet, CommonPlacementTitle, "Placement"), placementmenu);@@ -1157,8 +1155,8 @@ "Edit current workspace name"), 3);
update(); - if (toolbar->isOnTop()) setItemSelected(1, True); - if (toolbar->doAutoHide()) setItemSelected(2, True); + if (toolbar.isOnTop()) setItemSelected(1, True); + if (toolbar.doAutoHide()) setItemSelected(2, True); }@@ -1176,27 +1174,27 @@ if (! item) return;
switch (item->function()) { case 1: { // always on top - Bool change = ((toolbar->isOnTop()) ? False : True); - toolbar->on_top = change; + Bool change = ((toolbar.isOnTop()) ? False : True); + toolbar.on_top = change; setItemSelected(1, change); - if (toolbar->isOnTop()) toolbar->screen->raiseWindows((Window *) 0, 0); + if (toolbar.isOnTop()) toolbar.screen->raiseWindows((Window *) 0, 0); break; } case 2: { // auto hide - Bool change = ((toolbar->doAutoHide()) ? False : True); - toolbar->do_auto_hide = change; + Bool change = ((toolbar.doAutoHide()) ? False : True); + toolbar.do_auto_hide = change; setItemSelected(2, change); #ifdef SLIT - toolbar->screen->getSlit()->reposition(); + toolbar.screen->getSlit()->reposition(); #endif // SLIT break; } case 3: { // edit current workspace name - toolbar->edit(); + toolbar.edit(); hide(); break;@@ -1207,8 +1205,8 @@
void Toolbarmenu::internal_hide(void) { Basemenu::internal_hide(); - if (toolbar->doAutoHide() && ! toolbar->isEditing()) - toolbar->hide_handler.timeout(); + if (toolbar.doAutoHide() && ! toolbar.isEditing()) + toolbar.hide_handler.timeout(); }@@ -1219,10 +1217,8 @@ Basemenu::reconfigure();
} -Toolbarmenu::Placementmenu::Placementmenu(Toolbarmenu *tm) - : Basemenu(tm->toolbar->screen) { - toolbarmenu = tm; - +Toolbarmenu::Placementmenu::Placementmenu(Toolbarmenu &tm) + : Basemenu(*tm.toolbar.screen), toolbarmenu(tm) { setLabel(i18n->getMessage(ToolbarSet, ToolbarToolbarPlacement, "Toolbar Placement")); setInternalMenu();@@ -1251,13 +1247,13 @@
BasemenuItem *item = find(index); if (! item) return; - toolbarmenu->toolbar->screen->saveToolbarPlacement(item->function()); + toolbarmenu.toolbar.screen->saveToolbarPlacement(item->function()); hide(); - toolbarmenu->toolbar->reconfigure(); + toolbarmenu.toolbar.reconfigure(); #ifdef SLIT // reposition the slit as well to make sure it doesn't intersect the // toolbar - toolbarmenu->toolbar->screen->getSlit()->reposition(); + toolbarmenu.toolbar.screen->getSlit()->reposition(); #endif // SLIT }
@@ -35,16 +35,16 @@ class Toolbarmenu : public Basemenu {
private: class Placementmenu : public Basemenu { private: - Toolbarmenu *toolbarmenu; + Toolbarmenu &toolbarmenu; protected: virtual void itemSelected(int, int); public: - Placementmenu(Toolbarmenu *); + Placementmenu(Toolbarmenu &); }; - Toolbar *toolbar; + Toolbar &toolbar; Placementmenu *placementmenu; friend class Placementmenu;@@ -56,7 +56,7 @@ virtual void itemSelected(int, int);
virtual void internal_hide(void); public: - Toolbarmenu(Toolbar *); + Toolbarmenu(Toolbar &); ~Toolbarmenu(void); inline Basemenu *getPlacementmenu(void) { return placementmenu; }
@@ -152,7 +152,7 @@ windowmenu = 0;
lastButtonPressTime = 0; image_ctrl = screen->getImageControl(); - timer = new BTimer(openbox, this); + timer = new BTimer(*openbox, *this); timer->setTimeout(openbox->getAutoRaiseDelay()); timer->fireOnce(True);@@ -280,7 +280,7 @@ if (decorations.titlebar) XMapSubwindows(display, frame.title);
XMapSubwindows(display, frame.window); if (decorations.menu) - windowmenu = new Windowmenu(this); + windowmenu = new Windowmenu(*this); decorate();
@@ -68,7 +68,7 @@ id = i;
stackingList = new LinkedList<OpenboxWindow>; windowList = new LinkedList<OpenboxWindow>; - clientmenu = new Clientmenu(this); + clientmenu = new Clientmenu(*this); lastfocus = (OpenboxWindow *) 0;
@@ -228,7 +228,7 @@ XSync(getXDisplay(), False);
reconfigure_wait = reread_menu_wait = False; - timer = new BTimer(this, this); + timer = new BTimer(*this, *this); timer->setTimeout(0); timer->fireOnce(True);