X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FToolbar.cc;h=01e210fc376f47350e8ad92432927e76b4825fac;hb=9bf23ee332b5fb2d8093337c84d19d5b7a8e27ca;hp=3d2c4ae8f42e79d151c556c3c835160012b3d1b3;hpb=351f1d03315b84887b7532c35bdd8a49bdce1d43;p=chaz%2Fopenbox diff --git a/src/Toolbar.cc b/src/Toolbar.cc index 3d2c4ae8..01e210fc 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -64,26 +64,23 @@ #endif // TIME_WITH_SYS_TIME -Toolbar::Toolbar(BScreen *scrn) { - screen = scrn; - openbox = screen->getOpenbox(); - +Toolbar::Toolbar(BScreen &scrn) : screen(scrn), openbox(scrn.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->setTimeout(openbox->getAutoRaiseDelay()); + hide_timer = new BTimer(openbox, hide_handler); + hide_timer->setTimeout(openbox.getAutoRaiseDelay()); hide_timer->fireOnce(True); - image_ctrl = screen->getImageControl(); + image_ctrl = screen.getImageControl(); - on_top = screen->isToolbarOnTop(); - hidden = do_auto_hide = screen->doToolbarAutoHide(); + on_top = screen.isToolbarOnTop(); + hidden = do_auto_hide = screen.doToolbarAutoHide(); editing = False; new_workspace_name = (char *) 0; @@ -92,61 +89,61 @@ Toolbar::Toolbar(BScreen *scrn) { toolbarmenu = new Toolbarmenu(*this); - display = openbox->getXDisplay(); + display = openbox.getXDisplay(); XSetWindowAttributes attrib; unsigned long create_mask = CWBackPixmap | CWBackPixel | CWBorderPixel | CWColormap | CWOverrideRedirect | CWEventMask; attrib.background_pixmap = None; attrib.background_pixel = attrib.border_pixel = - screen->getBorderColor()->getPixel(); - attrib.colormap = screen->getColormap(); + screen.getBorderColor()->getPixel(); + attrib.colormap = screen.getColormap(); attrib.override_redirect = True; attrib.event_mask = ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask; frame.window = - XCreateWindow(display, screen->getRootWindow(), 0, 0, 1, 1, 0, - screen->getDepth(), InputOutput, screen->getVisual(), + XCreateWindow(display, screen.getRootWindow(), 0, 0, 1, 1, 0, + screen.getDepth(), InputOutput, screen.getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.window, this); + openbox.saveToolbarSearch(frame.window, this); attrib.event_mask = ButtonPressMask | ButtonReleaseMask | ExposureMask | KeyPressMask | EnterWindowMask; frame.workspace_label = - XCreateWindow(display, frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.workspace_label, this); + XCreateWindow(display, frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.workspace_label, this); frame.window_label = - XCreateWindow(display, frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.window_label, this); + XCreateWindow(display, frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.window_label, this); frame.clock = - XCreateWindow(display, frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.clock, this); + XCreateWindow(display, frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.clock, this); frame.psbutton = - XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.psbutton, this); + XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.psbutton, this); frame.nsbutton = - XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.nsbutton, this); + XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.nsbutton, this); frame.pwbutton = - XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.pwbutton, this); + XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.pwbutton, this); frame.nwbutton = - XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen->getDepth(), - InputOutput, screen->getVisual(), create_mask, &attrib); - openbox->saveToolbarSearch(frame.nwbutton, this); + XCreateWindow(display ,frame.window, 0, 0, 1, 1, 0, screen.getDepth(), + InputOutput, screen.getVisual(), create_mask, &attrib); + openbox.saveToolbarSearch(frame.nwbutton, this); frame.base = frame.label = frame.wlabel = frame.clk = frame.button = frame.pbutton = None; @@ -168,14 +165,14 @@ Toolbar::~Toolbar(void) { if (frame.button) image_ctrl->removeImage(frame.button); if (frame.pbutton) image_ctrl->removeImage(frame.pbutton); - openbox->removeToolbarSearch(frame.window); - openbox->removeToolbarSearch(frame.workspace_label); - openbox->removeToolbarSearch(frame.window_label); - openbox->removeToolbarSearch(frame.clock); - openbox->removeToolbarSearch(frame.psbutton); - openbox->removeToolbarSearch(frame.nsbutton); - openbox->removeToolbarSearch(frame.pwbutton); - openbox->removeToolbarSearch(frame.nwbutton); + openbox.removeToolbarSearch(frame.window); + openbox.removeToolbarSearch(frame.workspace_label); + openbox.removeToolbarSearch(frame.window_label); + openbox.removeToolbarSearch(frame.clock); + openbox.removeToolbarSearch(frame.psbutton); + openbox.removeToolbarSearch(frame.nsbutton); + openbox.removeToolbarSearch(frame.pwbutton); + openbox.removeToolbarSearch(frame.nwbutton); XDestroyWindow(display, frame.workspace_label); XDestroyWindow(display, frame.window_label); @@ -190,73 +187,73 @@ Toolbar::~Toolbar(void) { void Toolbar::reconfigure(void) { - frame.bevel_w = screen->getBevelWidth(); - frame.width = screen->getWidth() * screen->getToolbarWidthPercent() / 100; + frame.bevel_w = screen.getBevelWidth(); + frame.width = screen.getWidth() * screen.getToolbarWidthPercent() / 100; if (i18n->multibyte()) frame.height = - screen->getToolbarStyle()->fontset_extents->max_ink_extent.height; + screen.getToolbarStyle()->fontset_extents->max_ink_extent.height; else - frame.height = screen->getToolbarStyle()->font->ascent + - screen->getToolbarStyle()->font->descent; + frame.height = screen.getToolbarStyle()->font->ascent + + screen.getToolbarStyle()->font->descent; frame.button_w = frame.height; frame.height += 2; frame.label_h = frame.height; frame.height += (frame.bevel_w * 2); - switch (screen->getToolbarPlacement()) { + switch (screen.getToolbarPlacement()) { case TopLeft: frame.x = 0; frame.y = 0; frame.x_hidden = 0; - frame.y_hidden = screen->getBevelWidth() - screen->getBorderWidth() + frame.y_hidden = screen.getBevelWidth() - screen.getBorderWidth() - frame.height; break; case BottomLeft: frame.x = 0; - frame.y = screen->getHeight() - frame.height - - (screen->getBorderWidth() * 2); + frame.y = screen.getHeight() - frame.height + - (screen.getBorderWidth() * 2); frame.x_hidden = 0; - frame.y_hidden = screen->getHeight() - screen->getBevelWidth() - - screen->getBorderWidth(); + frame.y_hidden = screen.getHeight() - screen.getBevelWidth() + - screen.getBorderWidth(); break; case TopCenter: - frame.x = (screen->getWidth() - frame.width) / 2; + frame.x = (screen.getWidth() - frame.width) / 2; frame.y = 0; frame.x_hidden = frame.x; - frame.y_hidden = screen->getBevelWidth() - screen->getBorderWidth() + frame.y_hidden = screen.getBevelWidth() - screen.getBorderWidth() - frame.height; break; case BottomCenter: default: - frame.x = (screen->getWidth() - frame.width) / 2; - frame.y = screen->getHeight() - frame.height - - (screen->getBorderWidth() * 2); + frame.x = (screen.getWidth() - frame.width) / 2; + frame.y = screen.getHeight() - frame.height + - (screen.getBorderWidth() * 2); frame.x_hidden = frame.x; - frame.y_hidden = screen->getHeight() - screen->getBevelWidth() - - screen->getBorderWidth(); + frame.y_hidden = screen.getHeight() - screen.getBevelWidth() + - screen.getBorderWidth(); break; case TopRight: - frame.x = screen->getWidth() - frame.width - - (screen->getBorderWidth() * 2); + frame.x = screen.getWidth() - frame.width + - (screen.getBorderWidth() * 2); frame.y = 0; frame.x_hidden = frame.x; - frame.y_hidden = screen->getBevelWidth() - screen->getBorderWidth() + frame.y_hidden = screen.getBevelWidth() - screen.getBorderWidth() - frame.height; break; case BottomRight: - frame.x = screen->getWidth() - frame.width - - (screen->getBorderWidth() * 2); - frame.y = screen->getHeight() - frame.height - - (screen->getBorderWidth() * 2); + frame.x = screen.getWidth() - frame.width + - (screen.getBorderWidth() * 2); + frame.y = screen.getHeight() - frame.height + - (screen.getBorderWidth() * 2); frame.x_hidden = frame.x; - frame.y_hidden = screen->getHeight() - screen->getBevelWidth() - - screen->getBorderWidth(); + frame.y_hidden = screen.getHeight() - screen.getBevelWidth() + - screen.getBorderWidth(); break; } @@ -268,32 +265,31 @@ void Toolbar::reconfigure(void) { tt = localtime(&ttmp); if (tt) { 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 + 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; - XmbTextExtents(screen->getToolbarStyle()->fontset, t, len, &ink, + XmbTextExtents(screen.getToolbarStyle()->fontset, t, len, &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 * + // screen.getToolbarStyle()->fontset_extents->max_logical_extent.width * // 4; // brad's solution, which is currently buggy, too big //frame.clock_w = - // screen->getToolbarStyle()->fontset_extents->max_logical_extent.width + // screen.getToolbarStyle()->fontset_extents->max_logical_extent.width // * len; } else { - frame.clock_w = XTextWidth(screen->getToolbarStyle()->font, t, len); + 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; + //frame.clock_w = screen.getToolbarStyle()->font->max_bounds.width * len; } frame.clock_w += (frame.bevel_w * 4); @@ -306,7 +302,7 @@ void Toolbar::reconfigure(void) { } #else // !HAVE_STRFTIME frame.clock_w = - XTextWidth(screen->getToolbarStyle()->font, + XTextWidth(screen.getToolbarStyle()->font, i18n->getMessage(ToolbarSet, ToolbarNoStrftimeLength, "00:00000"), strlen(i18n->getMessage(ToolbarSet, ToolbarNoStrftimeLength, @@ -317,18 +313,18 @@ void Toolbar::reconfigure(void) { unsigned int w = 0; frame.workspace_label_w = 0; - for (i = 0; i < screen->getWorkspaceCount(); i++) { + for (i = 0; i < screen.getWorkspaceCount(); i++) { if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, - screen->getWorkspace(i)->getName(), - strlen(screen->getWorkspace(i)->getName()), + XmbTextExtents(screen.getToolbarStyle()->fontset, + screen.getWorkspace(i)->getName(), + strlen(screen.getWorkspace(i)->getName()), &ink, &logical); w = logical.width; } else { - w = XTextWidth(screen->getToolbarStyle()->font, - screen->getWorkspace(i)->getName(), - strlen(screen->getWorkspace(i)->getName())); + w = XTextWidth(screen.getToolbarStyle()->font, + screen.getWorkspace(i)->getName(), + strlen(screen.getWorkspace(i)->getName())); } w += (frame.bevel_w * 4); @@ -377,7 +373,7 @@ void Toolbar::reconfigure(void) { frame.label_h); Pixmap tmp = frame.base; - BTexture *texture = &(screen->getToolbarStyle()->toolbar); + BTexture *texture = &(screen.getToolbarStyle()->toolbar); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.base = None; XSetWindowBackground(display, frame.window, @@ -390,7 +386,7 @@ void Toolbar::reconfigure(void) { if (tmp) image_ctrl->removeImage(tmp); tmp = frame.label; - texture = &(screen->getToolbarStyle()->window); + texture = &(screen.getToolbarStyle()->window); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.label = None; XSetWindowBackground(display, frame.window_label, @@ -403,7 +399,7 @@ void Toolbar::reconfigure(void) { if (tmp) image_ctrl->removeImage(tmp); tmp = frame.wlabel; - texture = &(screen->getToolbarStyle()->label); + texture = &(screen.getToolbarStyle()->label); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.wlabel = None; XSetWindowBackground(display, frame.workspace_label, @@ -416,7 +412,7 @@ void Toolbar::reconfigure(void) { if (tmp) image_ctrl->removeImage(tmp); tmp = frame.clk; - texture = &(screen->getToolbarStyle()->clock); + texture = &(screen.getToolbarStyle()->clock); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.clk = None; XSetWindowBackground(display, frame.clock, @@ -429,7 +425,7 @@ void Toolbar::reconfigure(void) { if (tmp) image_ctrl->removeImage(tmp); tmp = frame.button; - texture = &(screen->getToolbarStyle()->button); + texture = &(screen.getToolbarStyle()->button); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.button = None; @@ -450,7 +446,7 @@ void Toolbar::reconfigure(void) { if (tmp) image_ctrl->removeImage(tmp); tmp = frame.pbutton; - texture = &(screen->getToolbarStyle()->pressed); + texture = &(screen.getToolbarStyle()->pressed); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.pbutton = None; frame.pbutton_pixel = texture->getColor()->getPixel(); @@ -461,8 +457,8 @@ void Toolbar::reconfigure(void) { if (tmp) image_ctrl->removeImage(tmp); XSetWindowBorder(display, frame.window, - screen->getBorderColor()->getPixel()); - XSetWindowBorderWidth(display, frame.window, screen->getBorderWidth()); + screen.getBorderColor()->getPixel()); + XSetWindowBorderWidth(display, frame.window, screen.getBorderWidth()); XClearWindow(display, frame.window); XClearWindow(display, frame.workspace_label); @@ -506,13 +502,13 @@ void Toolbar::checkClock(Bool redraw, Bool date) { if (redraw) { #ifdef HAVE_STRFTIME char t[1024]; - if (! strftime(t, 1024, screen->getStrftimeFormat(), tt)) + if (! strftime(t, 1024, screen.getStrftimeFormat(), tt)) return; #else // !HAVE_STRFTIME char t[9]; if (date) { // format the date... with special consideration for y2k ;) - if (screen->getDateFormat() == Openbox::B_EuropeanDate) + if (screen.getDateFormat() == Openbox::B_EuropeanDate) sprintf(t, 18n->getMessage(ToolbarSet, ToolbarNoStrftimeDateFormatEu, "%02d.%02d.%02d"), tt->tm_mday, tt->tm_mon + 1, @@ -523,7 +519,7 @@ void Toolbar::checkClock(Bool redraw, Bool date) { tt->tm_mon + 1, tt->tm_mday, (tt->tm_year >= 100) ? tt->tm_year - 100 : tt->tm_year); } else { - if (screen->isClock24Hour()) + if (screen.isClock24Hour()) sprintf(t, i18n->getMessage(ToolbarSet, ToolbarNoStrftimeTimeFormat24, " %02d:%02d "), frame.hour, frame.minute); @@ -545,11 +541,11 @@ void Toolbar::checkClock(Bool redraw, Bool date) { if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, + XmbTextExtents(screen.getToolbarStyle()->fontset, t, dlen, &ink, &logical); l = logical.width; } else { - l = XTextWidth(screen->getToolbarStyle()->font, t, dlen); + l = XTextWidth(screen.getToolbarStyle()->font, t, dlen); } l += (frame.bevel_w * 4); @@ -558,11 +554,11 @@ void Toolbar::checkClock(Bool redraw, Bool date) { for (; dlen >= 0; dlen--) { if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, + XmbTextExtents(screen.getToolbarStyle()->fontset, t, dlen, &ink, &logical); l = logical.width; } else { - l = XTextWidth(screen->getToolbarStyle()->font, t, dlen); + l = XTextWidth(screen.getToolbarStyle()->font, t, dlen); } l+= (frame.bevel_w * 4); @@ -570,7 +566,7 @@ void Toolbar::checkClock(Bool redraw, Bool date) { break; } } - switch (screen->getToolbarStyle()->justify) { + switch (screen.getToolbarStyle()->justify) { case BScreen::RightJustify: dx += frame.clock_w - l; break; @@ -580,7 +576,7 @@ void Toolbar::checkClock(Bool redraw, Bool date) { break; } - ToolbarStyle *style = screen->getToolbarStyle(); + ToolbarStyle *style = screen.getToolbarStyle(); if (i18n->multibyte()) XmbDrawString(display, frame.clock, style->fontset, style->c_text_gc, dx, (1 - style->fontset_extents->max_ink_extent.y), @@ -593,23 +589,23 @@ void Toolbar::checkClock(Bool redraw, Bool date) { void Toolbar::redrawWindowLabel(Bool redraw) { - if (screen->getOpenbox()->getFocusedWindow()) { + if (screen.getOpenbox().getFocusedWindow()) { if (redraw) XClearWindow(display, frame.window_label); - OpenboxWindow *foc = screen->getOpenbox()->getFocusedWindow(); - if (foc->getScreen() != screen) return; + OpenboxWindow *foc = screen.getOpenbox().getFocusedWindow(); + if (foc->getScreen() != &screen) return; int dx = (frame.bevel_w * 2), dlen = strlen(*foc->getTitle()); unsigned int l; if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, *foc->getTitle(), + XmbTextExtents(screen.getToolbarStyle()->fontset, *foc->getTitle(), dlen, &ink, &logical); l = logical.width; } else { - l = XTextWidth(screen->getToolbarStyle()->font, *foc->getTitle(), dlen); + l = XTextWidth(screen.getToolbarStyle()->font, *foc->getTitle(), dlen); } l += (frame.bevel_w * 4); @@ -617,11 +613,11 @@ void Toolbar::redrawWindowLabel(Bool redraw) { for (; dlen >= 0; dlen--) { if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, + XmbTextExtents(screen.getToolbarStyle()->fontset, *foc->getTitle(), dlen, &ink, &logical); l = logical.width; } else { - l = XTextWidth(screen->getToolbarStyle()->font, + l = XTextWidth(screen.getToolbarStyle()->font, *foc->getTitle(), dlen); } l += (frame.bevel_w * 4); @@ -630,7 +626,7 @@ void Toolbar::redrawWindowLabel(Bool redraw) { break; } } - switch (screen->getToolbarStyle()->justify) { + switch (screen.getToolbarStyle()->justify) { case BScreen::RightJustify: dx += frame.window_label_w - l; break; @@ -640,7 +636,7 @@ void Toolbar::redrawWindowLabel(Bool redraw) { break; } - ToolbarStyle *style = screen->getToolbarStyle(); + ToolbarStyle *style = screen.getToolbarStyle(); if (i18n->multibyte()) XmbDrawString(display, frame.window_label, style->fontset, style->w_text_gc, dx, @@ -656,23 +652,23 @@ void Toolbar::redrawWindowLabel(Bool redraw) { void Toolbar::redrawWorkspaceLabel(Bool redraw) { - if (screen->getCurrentWorkspace()->getName()) { + if (screen.getCurrentWorkspace()->getName()) { if (redraw) XClearWindow(display, frame.workspace_label); int dx = (frame.bevel_w * 2), dlen = - strlen(screen->getCurrentWorkspace()->getName()); + strlen(screen.getCurrentWorkspace()->getName()); unsigned int l; if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, - screen->getCurrentWorkspace()->getName(), dlen, + XmbTextExtents(screen.getToolbarStyle()->fontset, + screen.getCurrentWorkspace()->getName(), dlen, &ink, &logical); l = logical.width; } else { - l = XTextWidth(screen->getToolbarStyle()->font, - screen->getCurrentWorkspace()->getName(), dlen); + l = XTextWidth(screen.getToolbarStyle()->font, + screen.getCurrentWorkspace()->getName(), dlen); } l += (frame.bevel_w * 4); @@ -680,13 +676,13 @@ void Toolbar::redrawWorkspaceLabel(Bool redraw) { for (; dlen >= 0; dlen--) { if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, - screen->getCurrentWorkspace()->getName(), dlen, + XmbTextExtents(screen.getToolbarStyle()->fontset, + screen.getCurrentWorkspace()->getName(), dlen, &ink, &logical); l = logical.width; } else { - l = XTextWidth(screen->getWindowStyle()->font, - screen->getCurrentWorkspace()->getName(), dlen); + l = XTextWidth(screen.getWindowStyle()->font, + screen.getCurrentWorkspace()->getName(), dlen); } l += (frame.bevel_w * 4); @@ -694,7 +690,7 @@ void Toolbar::redrawWorkspaceLabel(Bool redraw) { break; } } - switch (screen->getToolbarStyle()->justify) { + switch (screen.getToolbarStyle()->justify) { case BScreen::RightJustify: dx += frame.workspace_label_w - l; break; @@ -704,16 +700,16 @@ void Toolbar::redrawWorkspaceLabel(Bool redraw) { break; } - ToolbarStyle *style = screen->getToolbarStyle(); + ToolbarStyle *style = screen.getToolbarStyle(); if (i18n->multibyte()) XmbDrawString(display, frame.workspace_label, style->fontset, style->l_text_gc, dx, (1 - style->fontset_extents->max_ink_extent.y), - (char *) screen->getCurrentWorkspace()->getName(), dlen); + (char *) screen.getCurrentWorkspace()->getName(), dlen); else XDrawString(display, frame.workspace_label, style->l_text_gc, dx, (style->font->ascent + 1), - (char *) screen->getCurrentWorkspace()->getName(), dlen); + (char *) screen.getCurrentWorkspace()->getName(), dlen); } } @@ -741,7 +737,7 @@ void Toolbar::redrawPrevWorkspaceButton(Bool pressed, Bool redraw) { pts[1].x = 4; pts[1].y = 2; pts[2].x = 0; pts[2].y = -4; - XFillPolygon(display, frame.psbutton, screen->getToolbarStyle()->b_pic_gc, + XFillPolygon(display, frame.psbutton, screen.getToolbarStyle()->b_pic_gc, pts, 3, Convex, CoordModePrevious); } @@ -769,7 +765,7 @@ void Toolbar::redrawNextWorkspaceButton(Bool pressed, Bool redraw) { pts[1].x = 4; pts[1].y = 2; pts[2].x = -4; pts[2].y = 2; - XFillPolygon(display, frame.nsbutton, screen->getToolbarStyle()->b_pic_gc, + XFillPolygon(display, frame.nsbutton, screen.getToolbarStyle()->b_pic_gc, pts, 3, Convex, CoordModePrevious); } @@ -797,7 +793,7 @@ void Toolbar::redrawPrevWindowButton(Bool pressed, Bool redraw) { pts[1].x = 4; pts[1].y = 2; pts[2].x = 0; pts[2].y = -4; - XFillPolygon(display, frame.pwbutton, screen->getToolbarStyle()->b_pic_gc, + XFillPolygon(display, frame.pwbutton, screen.getToolbarStyle()->b_pic_gc, pts, 3, Convex, CoordModePrevious); } @@ -825,7 +821,7 @@ void Toolbar::redrawNextWindowButton(Bool pressed, Bool redraw) { pts[1].x = 4; pts[1].y = 2; pts[2].x = -4; pts[2].y = 2; - XFillPolygon(display, frame.nwbutton, screen->getToolbarStyle()->b_pic_gc, + XFillPolygon(display, frame.nwbutton, screen.getToolbarStyle()->b_pic_gc, pts, 3, Convex, CoordModePrevious); } @@ -840,23 +836,23 @@ void Toolbar::edit(void) { return; XSetInputFocus(display, frame.workspace_label, - ((screen->isSloppyFocus()) ? RevertToPointerRoot : + ((screen.isSloppyFocus()) ? RevertToPointerRoot : RevertToParent), CurrentTime); XClearWindow(display, frame.workspace_label); - openbox->setNoFocus(True); - if (openbox->getFocusedWindow()) - openbox->getFocusedWindow()->setFocusFlag(False); + openbox.setNoFocus(True); + if (openbox.getFocusedWindow()) + openbox.getFocusedWindow()->setFocusFlag(False); XDrawRectangle(display, frame.workspace_label, - screen->getWindowStyle()->l_text_focus_gc, + screen.getWindowStyle()->l_text_focus_gc, frame.workspace_label_w / 2, 0, 1, frame.label_h - 1); // change the background of the window to that of an active window label Pixmap tmp = frame.wlabel; - BTexture *texture = &(screen->getWindowStyle()->l_focus); + BTexture *texture = &(screen.getWindowStyle()->l_focus); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.wlabel = None; XSetWindowBackground(display, frame.workspace_label, @@ -888,7 +884,7 @@ void Toolbar::buttonPressEvent(XButtonEvent *be) { #endif // HAVE_STRFTIME else if (! on_top) { Window w[1] = { frame.window }; - screen->raiseWindows(w, 1); + screen.raiseWindows(w, 1); } } else if (be->button == 2 && (! on_top)) { XLowerWindow(display, frame.window); @@ -901,13 +897,13 @@ void Toolbar::buttonPressEvent(XButtonEvent *be) { if (x < 0) x = 0; - else if (x + toolbarmenu->getWidth() > screen->getWidth()) - x = screen->getWidth() - toolbarmenu->getWidth(); + else if (x + toolbarmenu->getWidth() > screen.getWidth()) + x = screen.getWidth() - toolbarmenu->getWidth(); if (y < 0) y = 0; - else if (y + toolbarmenu->getHeight() > screen->getHeight()) - y = screen->getHeight() - toolbarmenu->getHeight(); + else if (y + toolbarmenu->getHeight() > screen.getHeight()) + y = screen.getHeight() - toolbarmenu->getHeight(); toolbarmenu->move(x, y); toolbarmenu->show(); @@ -925,36 +921,36 @@ void Toolbar::buttonReleaseEvent(XButtonEvent *re) { if (re->x >= 0 && re->x < (signed) frame.button_w && re->y >= 0 && re->y < (signed) frame.button_w) - if (screen->getCurrentWorkspace()->getWorkspaceID() > 0) - screen->changeWorkspaceID(screen->getCurrentWorkspace()-> + if (screen.getCurrentWorkspace()->getWorkspaceID() > 0) + screen.changeWorkspaceID(screen.getCurrentWorkspace()-> getWorkspaceID() - 1); else - screen->changeWorkspaceID(screen->getWorkspaceCount() - 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->getWorkspaceCount() - 1) - screen->changeWorkspaceID(screen->getCurrentWorkspace()-> + if (screen.getCurrentWorkspace()->getWorkspaceID() < + screen.getWorkspaceCount() - 1) + screen.changeWorkspaceID(screen.getCurrentWorkspace()-> getWorkspaceID() + 1); else - screen->changeWorkspaceID(0); + screen.changeWorkspaceID(0); } else if (re->window == frame.pwbutton) { redrawPrevWindowButton(False, True); if (re->x >= 0 && re->x < (signed) frame.button_w && re->y >= 0 && re->y < (signed) frame.button_w) - screen->prevFocus(); + screen.prevFocus(); } else if (re->window == frame.nwbutton) { redrawNextWindowButton(False, True); if (re->x >= 0 && re->x < (signed) frame.button_w && re->y >= 0 && re->y < (signed) frame.button_w) - screen->nextFocus(); + screen.nextFocus(); } else if (re->window == frame.window_label) - screen->raiseFocus(); + screen.raiseFocus(); #ifndef HAVE_STRFTIME else if (re->window == frame.clock) { XClearWindow(display, frame.clock); @@ -1002,7 +998,7 @@ void Toolbar::exposeEvent(XExposeEvent *ee) { void Toolbar::keyPressEvent(XKeyEvent *ke) { if (ke->window == frame.workspace_label && editing) { - openbox->grab(); + openbox.grab(); if (! new_workspace_name) { new_workspace_name = new char[128]; @@ -1021,10 +1017,10 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) { editing = False; - openbox->setNoFocus(False); - if (openbox->getFocusedWindow()) { - openbox->getFocusedWindow()->setInputFocus(); - openbox->getFocusedWindow()->setFocusFlag(True); + openbox.setNoFocus(False); + if (openbox.getFocusedWindow()) { + openbox.getFocusedWindow()->setInputFocus(); + openbox.getFocusedWindow()->setFocusFlag(True); } else { XSetInputFocus(display, PointerRoot, None, CurrentTime); } @@ -1032,15 +1028,15 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) { // workspace name which causes serious problems, especially for the // Openbox::LoadRC() method. if (*new_workspace_name) { - screen->getCurrentWorkspace()->setName(new_workspace_name); - screen->getCurrentWorkspace()->getMenu()->hide(); - screen->getWorkspacemenu()-> - remove(screen->getCurrentWorkspace()->getWorkspaceID() + 2); - screen->getWorkspacemenu()-> - insert(screen->getCurrentWorkspace()->getName(), - screen->getCurrentWorkspace()->getMenu(), - screen->getCurrentWorkspace()->getWorkspaceID() + 2); - screen->getWorkspacemenu()->update(); + screen.getCurrentWorkspace()->setName(new_workspace_name); + screen.getCurrentWorkspace()->getMenu()->hide(); + screen.getWorkspacemenu()-> + remove(screen.getCurrentWorkspace()->getWorkspaceID() + 2); + screen.getWorkspacemenu()-> + insert(screen.getCurrentWorkspace()->getName(), + screen.getCurrentWorkspace()->getMenu(), + screen.getCurrentWorkspace()->getWorkspaceID() + 2); + screen.getWorkspacemenu()->update(); } delete [] new_workspace_name; @@ -1050,7 +1046,7 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) { // reset the background to that of the workspace label (its normal // setting) Pixmap tmp = frame.wlabel; - BTexture *texture = &(screen->getToolbarStyle()->label); + BTexture *texture = &(screen.getToolbarStyle()->label); if (texture->getTexture() == (BImage_Flat | BImage_Solid)) { frame.wlabel = None; XSetWindowBackground(display, frame.workspace_label, @@ -1088,18 +1084,18 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) { if (i18n->multibyte()) { XRectangle ink, logical; - XmbTextExtents(screen->getToolbarStyle()->fontset, + XmbTextExtents(screen.getToolbarStyle()->fontset, new_workspace_name, l, &ink, &logical); tw = logical.width; } else { - tw = XTextWidth(screen->getToolbarStyle()->font, + tw = XTextWidth(screen.getToolbarStyle()->font, new_workspace_name, l); } x = (frame.workspace_label_w - tw) / 2; if (x < (signed) frame.bevel_w) x = frame.bevel_w; - WindowStyle *style = screen->getWindowStyle(); + WindowStyle *style = screen.getWindowStyle(); if (i18n->multibyte()) XmbDrawString(display, frame.workspace_label, style->fontset, style->l_text_focus_gc, x, @@ -1111,11 +1107,11 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) { new_workspace_name, l); XDrawRectangle(display, frame.workspace_label, - screen->getWindowStyle()->l_text_focus_gc, x + tw, 0, 1, + screen.getWindowStyle()->l_text_focus_gc, x + tw, 0, 1, frame.label_h - 1); } - openbox->ungrab(); + openbox.ungrab(); } } @@ -1140,7 +1136,7 @@ void Toolbar::HideHandler::timeout(void) { } -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(); @@ -1178,7 +1174,7 @@ void Toolbarmenu::itemSelected(int button, int index) { 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; } @@ -1188,7 +1184,7 @@ void Toolbarmenu::itemSelected(int button, int index) { setItemSelected(2, change); #ifdef SLIT - toolbar.screen->getSlit()->reposition(); + toolbar.screen.getSlit()->reposition(); #endif // SLIT break; } @@ -1218,7 +1214,7 @@ void Toolbarmenu::reconfigure(void) { Toolbarmenu::Placementmenu::Placementmenu(Toolbarmenu &tm) - : Basemenu(*tm.toolbar.screen), toolbarmenu(tm) { + : Basemenu(tm.toolbar.screen), toolbarmenu(tm) { setLabel(i18n->getMessage(ToolbarSet, ToolbarToolbarPlacement, "Toolbar Placement")); setInternalMenu(); @@ -1247,13 +1243,13 @@ void Toolbarmenu::Placementmenu::itemSelected(int button, int index) { BasemenuItem *item = find(index); if (! item) return; - toolbarmenu.toolbar.screen->saveToolbarPlacement(item->function()); + toolbarmenu.toolbar.screen.saveToolbarPlacement(item->function()); hide(); 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 }