- otk::OtkFocusWidget _plate; // sits entirely under the client window
- otk::OtkFocusWidget _titlebar;
- otk::OtkButton _button_close;
- otk::OtkButton _button_iconify;
- otk::OtkButton _button_max;
- otk::OtkButton _button_stick;
- otk::OtkFocusLabel _label;
- otk::OtkFocusWidget _handle;
- otk::OtkButton _grip_left;
- otk::OtkButton _grip_right;
-
- //! The decorations to display on the window.
+ 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 *_buttons; // all of the titlebar buttons
+ int _numbuttons; // number of buttons, size of _buttons array
+ int *_titleorder; // order of the buttons and the label (always
+ // holds '_numbuttons + 1' elements (for the
+ // label, which is coded as '-1')
+
+ // 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 **_buttons_sur;
+
+ FrameGeometry geom;
+
+ void applyStyle(const otk::RenderStyle &style);
+ void layoutTitle();
+ void renderLabel();
+
+public:
+ //! Constructs an Frame object for a client