const long Frame::event_mask;
Frame::Frame(Client *client, otk::Style *style)
- : otk::Widget(Openbox::instance, style, Horizontal, 0, 1, true),
+ : otk::Widget(openbox, style, Horizontal, 0, 1, true),
WidgetBase(WidgetBase::Type_Frame),
_client(client),
- _screen(otk::Display::screenInfo(client->screen())),
+ _screen(otk::display->screenInfo(client->screen())),
_plate(this, WidgetBase::Type_Plate),
_titlebar(this, WidgetBase::Type_Titlebar),
_button_close(&_titlebar, WidgetBase::Type_CloseButton),
assert(client);
assert(style);
- XSelectInput(otk::Display::display, _window, Frame::event_mask);
+ XSelectInput(**otk::display, _window, Frame::event_mask);
- _grip_left.setCursor(Openbox::instance->cursors().ll_angle);
- _grip_right.setCursor(Openbox::instance->cursors().lr_angle);
+ _grip_left.setCursor(openbox->cursors().ll_angle);
+ _grip_right.setCursor(openbox->cursors().lr_angle);
_label.setText(_client->title());
}
-void Frame::setTitle(const std::string &text)
+void Frame::setTitle(const otk::ustring &text)
{
_label.setText(text);
_label.update();
// separation between titlebar elements
const int sep = bevel + 1;
- std::string layout;
+ otk::ustring layout;
if (!python_get_string("titlebar_layout", &layout))
layout = "ILMC";
layout.erase(i--, 1);
}
if (!tit_l)
- layout.append(1, 'L');
+ layout += "L";
// the size of the label. this ASSUMES the layout has only buttons other
// that the ONE LABEL!!
if (!_client->shaped()) {
// clear the shape on the frame window
- XShapeCombineMask(otk::Display::display, _window, ShapeBounding,
+ XShapeCombineMask(**otk::display, _window, ShapeBounding,
_innersize.left,
_innersize.top,
None, ShapeSet);
} else {
// make the frame's shape match the clients
- XShapeCombineShape(otk::Display::display, _window, ShapeBounding,
+ XShapeCombineShape(**otk::display, _window, ShapeBounding,
_innersize.left,
_innersize.top,
_client->window(), ShapeBounding, ShapeSet);
++num;
}
- XShapeCombineRectangles(otk::Display::display, window(),
+ XShapeCombineRectangles(**otk::display, window(),
ShapeBounding, 0, 0, xrect, num,
ShapeUnion, Unsorted);
}
void Frame::grabClient()
{
// reparent the client to the frame
- XReparentWindow(otk::Display::display, _client->window(),
+ XReparentWindow(**otk::display, _client->window(),
_plate.window(), 0, 0);
/*
When reparenting the client window, it is usually not mapped yet, since
member set the root window, and one set to the client, but both get handled
and need to be ignored.
*/
- if (Openbox::instance->state() == Openbox::State_Starting)
+ if (openbox->state() == Openbox::State_Starting)
_client->ignore_unmaps += 2;
// select the event mask on the client's parent (to receive config req's)
- XSelectInput(otk::Display::display, _plate.window(),
+ XSelectInput(**otk::display, _plate.window(),
SubstructureRedirectMask);
// map the client so it maps when the frame does
- XMapWindow(otk::Display::display, _client->window());
+ XMapWindow(**otk::display, _client->window());
adjustSize();
adjustPosition();
XEvent ev;
// check if the app has already reparented its window away
- if (XCheckTypedWindowEvent(otk::Display::display, _client->window(),
+ if (XCheckTypedWindowEvent(**otk::display, _client->window(),
ReparentNotify, &ev)) {
- XPutBackEvent(otk::Display::display, &ev);
+ XPutBackEvent(**otk::display, &ev);
// re-map the window since the unmanaging process unmaps it
- XMapWindow(otk::Display::display, _client->window());
+ XMapWindow(**otk::display, _client->window());
} else {
// according to the ICCCM - if the client doesn't reparent itself, then we
// will reparent the window to root for them
- XReparentWindow(otk::Display::display, _client->window(),
+ XReparentWindow(**otk::display, _client->window(),
_screen->rootWindow(),
_client->area().x(), _client->area().y());
}