summaryrefslogtreecommitdiff
path: root/otk/focuswidget.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-12-18 02:28:44 +0000
committerDana Jansens <danakj@orodu.net>2002-12-18 02:28:44 +0000
commit70eb03ad50e1a71fd64c8cb1ebabbff311850553 (patch)
tree0cef2e44f7e97c0d00281df8746e7fb7f2c15f5f /otk/focuswidget.cc
parent6bf858e4f4fc19914a36d51546278e6464ec00e0 (diff)
add an OBBackgroundWidget and use it for setting colors so far.
Diffstat (limited to 'otk/focuswidget.cc')
-rw-r--r--otk/focuswidget.cc40
1 files changed, 23 insertions, 17 deletions
diff --git a/otk/focuswidget.cc b/otk/focuswidget.cc
index 22a6100b..f5b176bf 100644
--- a/otk/focuswidget.cc
+++ b/otk/focuswidget.cc
@@ -9,44 +9,44 @@
namespace otk {
OtkFocusWidget::OtkFocusWidget(OtkWidget *parent, Direction direction)
- : OtkWidget(parent, direction), _unfocus_texture(0), _focused(true)
+ : OtkWidget(parent, direction), _unfocus_texture(0), _unfocus_bcolor(0)
{
+ _focused = true;
_focus_texture = parent->getTexture();
+ _focus_bcolor = parent->getBorderColor();
}
OtkFocusWidget::~OtkFocusWidget()
{
}
+#include <stdio.h>
void OtkFocusWidget::focus(void)
{
- if (_focused)
+ if (!isVisible() || _focused)
return;
- // XXX: what about OtkWidget::focus()
+ printf("FOCUS\n");
+ OtkWidget::focus();
+
+ if (_focus_bcolor)
+ OtkWidget::setBorderColor(_focus_bcolor);
- assert(_focus_texture);
OtkWidget::setTexture(_focus_texture);
OtkWidget::update();
-
- OtkWidget::OtkWidgetList children = OtkWidget::getChildren();
-
- OtkWidget::OtkWidgetList::iterator it = children.begin(),
- end = children.end();
-
- OtkFocusWidget *tmp = 0;
- for (; it != end; ++it) {
- tmp = dynamic_cast<OtkFocusWidget*>(*it);
- if (tmp) tmp->focus();
- }
}
void OtkFocusWidget::unfocus(void)
{
- if (! _focused)
+ if (!isVisible() || !_focused)
return;
- assert(_unfocus_texture);
+ printf("UNFOCUS\n");
+ OtkWidget::unfocus();
+
+ if (_unfocus_bcolor)
+ OtkWidget::setBorderColor(_unfocus_bcolor);
+
OtkWidget::setTexture(_unfocus_texture);
OtkWidget::update();
@@ -68,4 +68,10 @@ void OtkFocusWidget::setTexture(BTexture *texture)
_focus_texture = texture;
}
+void OtkFocusWidget::setBorderColor(const BColor *color)
+{
+ OtkWidget::setBorderColor(color);
+ _focus_bcolor = color;
+}
+
}