]> Dogcows Code - chaz/openbox/blobdiff - src/backgroundwidget.cc
might not compile... ob uses its own widgets now, which subclass only the base otk...
[chaz/openbox] / src / backgroundwidget.cc
index 7d715f55e336a89f9eb373a706ce1c12422cf39c..8b63b44d8781c76055af85d8115b9fa76cc52bc7 100644 (file)
@@ -10,7 +10,7 @@ namespace ob {
 
 OBBackgroundWidget::OBBackgroundWidget(otk::OtkWidget *parent,
                                        OBWidget::WidgetType type)
-  : otk::OtkFocusWidget(parent),
+  : otk::OtkWidget(parent),
     OBWidget(type)
 {
 }
@@ -21,37 +21,67 @@ OBBackgroundWidget::~OBBackgroundWidget()
 }
 
 
-void OBBackgroundWidget::setStyle(otk::Style *style)
+void OBBackgroundWidget::setTextures()
 {
   switch (type()) {
   case Type_Titlebar:
-    setTexture(style->getTitleFocus());
-    setUnfocusTexture(style->getTitleUnfocus());
-    setBorderColor(style->getBorderColor());
+    if (_focused)
+      setTexture(_style->getTitleFocus());
+    else
+      setTexture(_style->getTitleUnfocus());
+    break;
+  case Type_Handle:
+    if (_focused)
+      setTexture(_style->getHandleFocus());
+    else
+      setTexture(_style->getHandleUnfocus());
     break;
+  case Type_Plate:
+    if (_focused)
+      setBorderColor(&_style->getFrameFocus()->color());
+    else
+      setBorderColor(&_style->getFrameUnfocus()->color());
+    break;
+  default:
+    assert(false); // there's no other background widgets!
+  }
+}
+
+
+void OBBackgroundWidget::setStyle(otk::Style *style)
+{
+  OtkWidget::setStyle(style);
+  setTextures();
+  switch (type()) {
+  case Type_Titlebar:
   case Type_Handle:
-    setTexture(style->getHandleFocus());
-    setUnfocusTexture(style->getHandleUnfocus());
-    setBorderColor(style->getBorderColor());
+    setBorderColor(_style->getBorderColor());
     break;
   case Type_Plate:
-    setBorderColor(&style->getFrameFocus()->color());
-    setUnfocusBorderColor(&style->getFrameUnfocus()->color());
     break;
   default:
     assert(false); // there's no other background widgets!
   }
+}
+
+
+void OBBackgroundWidget::focus()
+{
+  otk::OtkWidget::focus();
+  setTextures();
+}
+
 
-  otk::OtkFocusWidget::setStyle(style);
+void OBBackgroundWidget::unfocus()
+{
+  otk::OtkWidget::unfocus();
+  setTextures();
 }
 
 
 void OBBackgroundWidget::adjust()
 {
-  otk::OtkFocusWidget::adjust();
-
   // XXX: adjust shit
 }
 
-
 }
This page took 0.022227 seconds and 4 git commands to generate.