X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fframe.hh;h=b2cc2d16419c153da873adb7f678b2f7ca3c0240;hb=9e6b0d5a8d0226232802bdece77665b167f98dae;hp=0a22cbaa1244edd75e6b05123a801151e6fbd259;hpb=77ab46d1e35d48e73c201e6de88b26f48bb06425;p=chaz%2Fopenbox diff --git a/src/frame.hh b/src/frame.hh index 0a22cbaa..b2cc2d16 100644 --- a/src/frame.hh +++ b/src/frame.hh @@ -16,8 +16,9 @@ extern "C" { #include "otk/strut.hh" #include "otk/rect.hh" #include "otk/screeninfo.hh" -#include "otk/style.hh" +#include "otk/renderstyle.hh" #include "otk/widget.hh" +#include "otk/ustring.hh" #include @@ -39,9 +40,6 @@ private: Client *_client; const otk::ScreenInfo *_screen; - //! The style to use for size and display the decorations - otk::Style *_style; - //! The size of the frame on each side of the client window otk::Strut _size; @@ -54,7 +52,7 @@ private: ButtonWidget _button_close; ButtonWidget _button_iconify; ButtonWidget _button_max; - ButtonWidget _button_stick; + ButtonWidget _button_alldesk; LabelWidget _label; BackgroundWidget _handle; ButtonWidget _grip_left; @@ -73,12 +71,15 @@ public: @param client The client window which will be decorated by the new Frame @param style The style to use to decorate the frame */ - Frame(Client *client, otk::Style *style); + Frame(Client *client, otk::RenderStyle *style); //! Destroys the Frame object virtual ~Frame(); + //! Returns the size of the frame on each side of the client + const otk::Strut& size() const { return _size; } + //! Set the style to decorate the frame with - virtual void setStyle(otk::Style *style); + virtual void setStyle(otk::RenderStyle *style); //! Empty overridden method to prevent automatic alignment of children virtual void adjust(); @@ -88,7 +89,7 @@ public: //! Displays unfocused decorations virtual void unfocus(); - void setTitle(const std::string &text); + void setTitle(const otk::ustring &text); //! Reparents the client window from the root window onto the frame void grabClient(); @@ -101,6 +102,9 @@ public: void adjustPosition(); //! Shape the frame window to the client window void adjustShape(); + //! Update the frame to match the client's new state (for things like toggle + //! buttons) + void adjustState(); //! Applies gravity to the client's position to find where the frame should //! be positioned. @@ -128,8 +132,8 @@ public: inline Window button_iconify() const { return _button_iconify.window(); } //! Gets the window id of the frame's "maximize button" subelement inline Window button_max() const { return _button_max.window(); } - //! Gets the window id of the frame's "sticky button" subelement - inline Window button_stick() const { return _button_stick.window(); } + //! Gets the window id of the frame's "all desktops button" subelement + inline Window button_alldesk() const { return _button_alldesk.window(); } //! Gets the window id of the frame's "handle" subelement inline Window handle() const { return _handle.window(); } //! Gets the window id of the frame's "left grip" subelement