#include "Workspace.h"
#include "Workspacemenu.h"
-#include <X11/Xutil.h>
#include <X11/keysym.h>
-#ifdef STDC_HEADERS
+#ifdef HAVE_STRING_H
# include <string.h>
-#endif // STDC_HEADERS
+#endif // HAVE_STRING_H
#ifdef HAVE_STDIO_H
# include <stdio.h>
#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;
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;
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);
void Toolbar::reconfigure(void) {
- frame.bevel_w = screen->getBevelWidth();
- frame.width = screen->getWidth() * screen->getToolbarWidthPercent() / 100;
+ frame.bevel_w = screen.getBevelWidth();
+ frame.width = screen.size().w() * 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.size().h() - frame.height
+ - (screen.getBorderWidth() * 2);
frame.x_hidden = 0;
- frame.y_hidden = screen->getHeight() - screen->getBevelWidth()
- - screen->getBorderWidth();
+ frame.y_hidden = screen.size().h() - screen.getBevelWidth()
+ - screen.getBorderWidth();
break;
case TopCenter:
- frame.x = (screen->getWidth() - frame.width) / 2;
+ frame.x = (screen.size().w() - 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.size().w() - frame.width) / 2;
+ frame.y = screen.size().h() - frame.height
+ - (screen.getBorderWidth() * 2);
frame.x_hidden = frame.x;
- frame.y_hidden = screen->getHeight() - screen->getBevelWidth()
- - screen->getBorderWidth();
+ frame.y_hidden = screen.size().h() - screen.getBevelWidth()
+ - screen.getBorderWidth();
break;
case TopRight:
- frame.x = screen->getWidth() - frame.width
- - (screen->getBorderWidth() * 2);
+ frame.x = screen.size().w() - 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.size().w() - frame.width
+ - (screen.getBorderWidth() * 2);
+ frame.y = screen.size().h() - frame.height
+ - (screen.getBorderWidth() * 2);
frame.x_hidden = frame.x;
- frame.y_hidden = screen->getHeight() - screen->getBevelWidth()
- - screen->getBorderWidth();
+ frame.y_hidden = screen.size().h() - screen.getBevelWidth()
+ - screen.getBorderWidth();
break;
}
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);
}
#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,
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);
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,
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,
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,
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,
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;
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();
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);
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,
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);
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);
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);
break;
}
}
- switch (screen->getToolbarStyle()->justify) {
+ switch (screen.getToolbarStyle()->justify) {
case BScreen::RightJustify:
dx += frame.clock_w - l;
break;
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),
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);
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);
break;
}
}
- switch (screen->getToolbarStyle()->justify) {
+ switch (screen.getToolbarStyle()->justify) {
case BScreen::RightJustify:
dx += frame.window_label_w - l;
break;
break;
}
- ToolbarStyle *style = screen->getToolbarStyle();
+ ToolbarStyle *style = screen.getToolbarStyle();
if (i18n->multibyte())
XmbDrawString(display, frame.window_label, style->fontset,
style->w_text_gc, dx,
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);
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);
break;
}
}
- switch (screen->getToolbarStyle()->justify) {
+ switch (screen.getToolbarStyle()->justify) {
case BScreen::RightJustify:
dx += frame.workspace_label_w - l;
break;
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);
}
}
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);
}
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);
}
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);
}
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);
}
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,
#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);
if (x < 0)
x = 0;
- else if (x + toolbarmenu->getWidth() > screen->getWidth())
- x = screen->getWidth() - toolbarmenu->getWidth();
+ else if (x + toolbarmenu->getWidth() > screen.size().w())
+ x = screen.size().w() - 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.size().h())
+ y = screen.size().h() - toolbarmenu->getHeight();
toolbarmenu->move(x, y);
toolbarmenu->show();
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);
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];
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);
}
// 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;
// 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,
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,
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();
}
}
}
-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();
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;
}
setItemSelected(2, change);
#ifdef SLIT
- toolbar.screen->getSlit()->reposition();
+ toolbar.screen.getSlit()->reposition();
#endif // SLIT
break;
}
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();
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
}