X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fframe.hh;h=7fa7a513fdd7c8194101df19e71e04a1e0799a3b;hb=cce970813f088952e05e20f13d77d6f4766863e3;hp=c5a9a312adc28c5c7c84d92c65f6c8d85c7d2967;hpb=f89831466220b6219a15fa3e670149191055ba5a;p=chaz%2Fopenbox diff --git a/src/frame.hh b/src/frame.hh index c5a9a312..7fa7a513 100644 --- a/src/frame.hh +++ b/src/frame.hh @@ -9,6 +9,7 @@ extern "C" { #include } +#include "client.hh" #include "python.hh" #include "otk/strut.hh" #include "otk/rect.hh" @@ -22,8 +23,6 @@ extern "C" { namespace ob { -class Client; - //! Varius geometry settings in the frame decorations struct FrameGeometry { int width; // title and handle @@ -33,6 +32,11 @@ struct FrameGeometry { int label_height() { return font_height; } int handle_height; // static, from the style int icon_x; // x-position of the window icon button + int title_x; // x-position of the window title + int iconify_x; // x-position of the window iconify button + int desktop_x; // x-position of the window all-desktops button + int max_x; // x-position of the window maximize button + int close_x; // x-position of the window close button int handle_y; int button_size; // static, from the style int grip_width() { return button_size * 2; } @@ -66,6 +70,9 @@ private: otk::Rect _area; bool _visible; + + //! The decorations that are being displayed in the frame. + Client::DecorationFlags _decorations; // decoration windows Window _frame; // sits under everything @@ -93,7 +100,7 @@ private: otk::Surface *_icon_sur; otk::Surface *_close_sur; - std::string _layout; // layout of the titlebar + otk::ustring _layout; // layout of the titlebar bool _max_press; bool _desk_press; @@ -144,6 +151,7 @@ public: void adjustState(); void adjustFocus(); void adjustTitle(); + void adjustIcon(); //! Applies gravity to the client's position to find where the frame should //! be positioned.