- OBBackgroundWidget _plate; // sits entirely under the client window
- OBBackgroundWidget _titlebar;
- OBButtonWidget _button_close;
- OBButtonWidget _button_iconify;
- OBButtonWidget _button_max;
- OBButtonWidget _button_stick;
- OBLabelWidget _label;
- OBBackgroundWidget _handle;
- OBButtonWidget _grip_left;
- OBButtonWidget _grip_right;
-
- //! The decorations to display on the window.
- /*!
- This is by default the same value as in the OBClient::decorations, but it
- is duplicated here so that it can be overridden per-window by the user.
- */
- OBClient::DecorationFlags _decorations;
+ Window _frame; // sits under everything
+ Window _plate; // sits entirely under the client window
+ Window _title; // the titlebar
+ Window _label; // the section of the titlebar which shows the window name
+ Window _handle; // bottom bar
+ Window _lgrip; // lefthand resize grab on the handle
+ Window _rgrip; // righthand resize grab on the handle
+ Window _max; // maximize button
+ Window _desk; // all-desktops button
+ Window _iconify; // iconify button
+ Window _icon; // window icon button
+ Window _close; // close button
+
+ // surfaces for each
+ otk::Surface *_frame_sur;
+ otk::Surface *_title_sur;
+ otk::Surface *_label_sur;
+ otk::Surface *_handle_sur;
+ otk::Surface *_grip_sur;
+ otk::Surface *_max_sur;
+ otk::Surface *_desk_sur;
+ otk::Surface *_iconify_sur;
+ otk::Surface *_icon_sur;
+ otk::Surface *_close_sur;
+
+ otk::ustring _layout; // layout of the titlebar
+
+ bool _max_press;
+ bool _desk_press;
+ bool _iconify_press;
+ bool _icon_press;
+ bool _close_press;
+ unsigned int _press_button; // mouse button that started the press
+
+ FrameGeometry geom;
+
+ void applyStyle(const otk::RenderStyle &style);
+ void layoutTitle();
+ void renderLabel();
+ void renderMax();
+ void renderDesk();
+ void renderIconify();
+ void renderClose();
+ void renderIcon();