From: Dana Jansens Date: Wed, 18 Dec 2002 09:46:24 +0000 (+0000) Subject: use OB Widgets for everything X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=25d1e3538be5719b238f7e62a949c409fef2af66;p=chaz%2Fopenbox use OB Widgets for everything --- diff --git a/otk/widget.cc b/otk/widget.cc index 2c3c6058..fec463fd 100644 --- a/otk/widget.cc +++ b/otk/widget.cc @@ -438,7 +438,7 @@ void OtkWidget::removeChild(OtkWidget *child) if (it != _children.end()) _children.erase(it); } -#include + void OtkWidget::setStyle(Style *style) { assert(style); diff --git a/src/Makefile.am b/src/Makefile.am index 319a9fde..4e5fa83d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -16,7 +16,8 @@ bin_PROGRAMS= openbox3 openbox3_LDADD=../otk/libotk.a @LIBINTL@ openbox3_SOURCES= actions.cc client.cc frame.cc openbox.cc screen.cc \ - main.cc rootwindow.cc backgroundwidget.cc + main.cc rootwindow.cc backgroundwidget.cc labelwidget.cc \ + buttonwidget.cc MAINTAINERCLEANFILES= Makefile.in diff --git a/src/client.hh b/src/client.hh index 37e26cb2..d518b9cc 100644 --- a/src/client.hh +++ b/src/client.hh @@ -303,7 +303,8 @@ private: /*! This also maintains things like the client's minsize, and size increments. @param anchor The corner to keep in the same position when resizing - @param size The new size for the client + @param x The X component of the new size for the client + @param y The Y component of the new size for the client */ void resize(Corner anchor, int x, int y); diff --git a/src/frame.cc b/src/frame.cc index fc85d6d1..979d9575 100644 --- a/src/frame.cc +++ b/src/frame.cc @@ -27,14 +27,14 @@ OBFrame::OBFrame(OBClient *client, otk::Style *style) _screen(otk::OBDisplay::screenInfo(client->screen())), _plate(this, OBWidget::Type_Plate), _titlebar(this, OBWidget::Type_Titlebar), - _button_close(&_titlebar), - _button_iconify(&_titlebar), - _button_max(&_titlebar), - _button_stick(&_titlebar), - _label(&_titlebar), + _button_close(&_titlebar, OBWidget::Type_CloseButton), + _button_iconify(&_titlebar, OBWidget::Type_IconifyButton), + _button_max(&_titlebar, OBWidget::Type_MaximizeButton), + _button_stick(&_titlebar, OBWidget::Type_StickyButton), + _label(&_titlebar, OBWidget::Type_Label), _handle(this, OBWidget::Type_Handle), - _grip_left(&_handle), - _grip_right(&_handle), + _grip_left(&_handle, OBWidget::Type_LeftGrip), + _grip_right(&_handle, OBWidget::Type_RightGrip), _decorations(client->decorations()) { assert(client); @@ -85,15 +85,6 @@ void OBFrame::setStyle(otk::Style *style) assert(style); otk::OtkWidget::setStyle(style); - // set the grips' textures - _grip_left.setTexture(style->getGripFocus()); - _grip_left.setUnfocusTexture(style->getGripUnfocus()); - _grip_left.setPressedFocusTexture(style->getGripFocus()); - _grip_left.setPressedUnfocusTexture(style->getGripUnfocus()); - _grip_right.setTexture(style->getGripFocus()); - _grip_right.setUnfocusTexture(style->getGripUnfocus()); - _grip_right.setPressedFocusTexture(style->getGripFocus()); - _grip_right.setPressedUnfocusTexture(style->getGripUnfocus()); // if a style was previously set, then 'replace' is true, cause we're // replacing a style @@ -108,10 +99,6 @@ void OBFrame::setStyle(otk::Style *style) // XXX: change when focus changes! XSetWindowBorder(otk::OBDisplay::display, getWindow(), _style->getBorderColor()->pixel()); - XSetWindowBorder(otk::OBDisplay::display, _grip_left.getWindow(), - _style->getBorderColor()->pixel()); - XSetWindowBorder(otk::OBDisplay::display, _grip_right.getWindow(), - _style->getBorderColor()->pixel()); // if !replace, then adjust() will get called after the client is grabbed! if (replace) { diff --git a/src/frame.hh b/src/frame.hh index 450c8670..85c863e7 100644 --- a/src/frame.hh +++ b/src/frame.hh @@ -11,14 +11,13 @@ extern "C" { #include "client.hh" #include "backgroundwidget.hh" +#include "labelwidget.hh" +#include "buttonwidget.hh" #include "otk/strut.hh" #include "otk/rect.hh" #include "otk/screeninfo.hh" #include "otk/style.hh" #include "otk/widget.hh" -#include "otk/button.hh" -#include "otk/focuswidget.hh" -#include "otk/focuslabel.hh" #include @@ -52,14 +51,14 @@ private: // decoration windows OBBackgroundWidget _plate; // sits entirely under the client window OBBackgroundWidget _titlebar; - otk::OtkButton _button_close; - otk::OtkButton _button_iconify; - otk::OtkButton _button_max; - otk::OtkButton _button_stick; - otk::OtkFocusLabel _label; + OBButtonWidget _button_close; + OBButtonWidget _button_iconify; + OBButtonWidget _button_max; + OBButtonWidget _button_stick; + OBLabelWidget _label; OBBackgroundWidget _handle; - otk::OtkButton _grip_left; - otk::OtkButton _grip_right; + OBButtonWidget _grip_left; + OBButtonWidget _grip_right; //! The decorations to display on the window. /*! diff --git a/src/rootwindow.hh b/src/rootwindow.hh index d78f4ff7..c05bfd7b 100644 --- a/src/rootwindow.hh +++ b/src/rootwindow.hh @@ -2,7 +2,7 @@ #ifndef __rootwindow_hh #define __rootwindow_hh -/*! @file client.hh +/*! @file rootwindow.hh @brief The OBClient class maintains the state of a client window by handling property changes on the window and some client messages */ diff --git a/src/widget.hh b/src/widget.hh index c82c2862..ed0f0a9d 100644 --- a/src/widget.hh +++ b/src/widget.hh @@ -9,7 +9,14 @@ public: enum WidgetType { Type_Titlebar, Type_Handle, - Type_Plate + Type_Plate, + Type_Label, + Type_MaximizeButton, + Type_CloseButton, + Type_IconifyButton, + Type_StickyButton, + Type_LeftGrip, + Type_RightGrip }; private: