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);
new_name_pos = 0;
frame.grab_x = frame.grab_y = 0;
- toolbarmenu = new Toolbarmenu(this);
+ toolbarmenu = new Toolbarmenu(*this);
display = openbox->getXDisplay();
XSetWindowAttributes attrib;
if (ttmp != -1) {
tt = localtime(&ttmp);
if (tt) {
- char t[1024], *time_string = (char *) 0;
+ char t[1025], *time_string = (char *) 0;
int len = strftime(t, 1024, screen->getStrftimeFormat(), tt);
+ t[len++-1] = ' '; // add a space to the string for padding
+ t[len] = '\0';
if (i18n->multibyte()) {
XRectangle ink, logical;
frame.clock_w = logical.width;
// ben's additional solution to pad some space beside the numbers
- frame.clock_w +=
- screen->getToolbarStyle()->fontset_extents->max_logical_extent.width *
- 4;
+ //frame.clock_w +=
+ // screen->getToolbarStyle()->fontset_extents->max_logical_extent.width *
+ // 4;
// brad's solution, which is currently buggy, too big
//frame.clock_w =
} else {
frame.clock_w = XTextWidth(screen->getToolbarStyle()->font, t, len);
// ben's additional solution to pad some space beside the numbers
- frame.clock_w += screen->getToolbarStyle()->font->max_bounds.width * 4;
+ //frame.clock_w += screen->getToolbarStyle()->font->max_bounds.width * 4;
// brad's solution again, too big
//frame.clock_w = screen->getToolbarStyle()->font->max_bounds.width * len;
}
unsigned int w = 0;
frame.workspace_label_w = 0;
- for (i = 0; i < screen->getCount(); i++) {
+ for (i = 0; i < screen->getWorkspaceCount(); i++) {
if (i18n->multibyte()) {
XRectangle ink, logical;
XmbTextExtents(screen->getToolbarStyle()->fontset,
screen->changeWorkspaceID(screen->getCurrentWorkspace()->
getWorkspaceID() - 1);
else
- screen->changeWorkspaceID(screen->getCount() - 1);
+ screen->changeWorkspaceID(screen->getWorkspaceCount() - 1);
} else if (re->window == frame.nsbutton) {
redrawNextWorkspaceButton(False, True);
if (re->x >= 0 && re->x < (signed) frame.button_w &&
re->y >= 0 && re->y < (signed) frame.button_w)
if (screen->getCurrentWorkspace()->getWorkspaceID() <
- screen->getCount() - 1)
+ screen->getWorkspaceCount() - 1)
screen->changeWorkspaceID(screen->getCurrentWorkspace()->
getWorkspaceID() + 1);
else
}
-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);
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);
}
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;
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();
}
}
-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();
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
}