various fixes to the otk widgets
authorDana Jansens <danakj@orodu.net>
Wed, 5 Feb 2003 05:48:01 +0000 (05:48 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 5 Feb 2003 05:48:01 +0000 (05:48 +0000)
otk/Makefile.am
otk/appwidget.cc
otk/appwidget.hh
otk/button.cc
otk/focuslabel.cc
otk/focuswidget.cc
otk/label.cc

index e1fb64d..992d734 100644 (file)
@@ -27,7 +27,8 @@ includeotk_HEADERS=application.hh appwidget.hh assassin.hh button.hh \
                    point.hh property.hh pseudorendercontrol.hh rect.hh \
                    rendercolor.hh rendercontrol.hh renderstyle.hh \
                    rendertexture.hh screeninfo.hh strut.hh surface.hh \
-                   timer.hh truerendercontrol.hh ustring.hh util.hh widget.hh
+                   timer.hh truerendercontrol.hh ustring.hh util.hh widget.hh \
+                   ../config.h
 libotk_la_LDFLAGS = $(XFT_LIBS) $(PYTHON_LIBS) @LIBS@
 
 MAINTAINERCLEANFILES= Makefile.in
index c62a0d9..afb86c0 100644 (file)
@@ -26,12 +26,21 @@ AppWidget::AppWidget(Application *app, Direction direction,
   protocols[0] = Property::atoms.wm_protocols;
   protocols[1] = Property::atoms.wm_delete_window;
   XSetWMProtocols(**display, window(), protocols, 2);
+
+  setStyle(_style);
 }
 
 AppWidget::~AppWidget()
 {
 }
 
+void AppWidget::setStyle(RenderStyle *style)
+{
+  Widget::setStyle(style);
+
+  setTexture(style->titlebarUnfocusBackground());
+}
+
 void AppWidget::show(void)
 {
   Widget::show(true);
index 69cca58..b305dba 100644 (file)
@@ -15,6 +15,8 @@ public:
             Cursor cursor = 0, int bevel_width = 1);
   virtual ~AppWidget();
 
+  virtual void setStyle(RenderStyle *style);
+  
   virtual void show(void);
   virtual void hide(void);
 
index 08dc048..c70511f 100644 (file)
@@ -35,10 +35,10 @@ void Button::press(unsigned int mouse_button)
 {
   if (_pressed) return;
 
-  if (_pressed_focus_tx)
-    FocusWidget::setTexture(_pressed_focus_tx);
   if (_pressed_unfocus_tx)
     FocusWidget::setUnfocusTexture(_pressed_unfocus_tx);
+  if (_pressed_focus_tx)
+    FocusWidget::setTexture(_pressed_focus_tx);
   _pressed = true;
   _mouse_button = mouse_button;
 }
@@ -47,8 +47,8 @@ void Button::release(unsigned int mouse_button)
 {
   if (_mouse_button != mouse_button) return; // wrong button
 
-  FocusWidget::setTexture(_unpr_focus_tx);
   FocusWidget::setUnfocusTexture(_unpr_unfocus_tx);
+  FocusWidget::setTexture(_unpr_focus_tx);
   _pressed = false;
 }
 
index 8ac328e..bd74aa9 100644 (file)
@@ -58,7 +58,7 @@ void FocusLabel::update()
         internalResize(w, h);
       else
         internalResize(w, _rect.height());
-    } else
+    } else if (h > _rect.height())
       internalResize(_rect.width(), h);
   }
   FocusWidget::update();
index e3973dc..b8e18d7 100644 (file)
@@ -53,6 +53,8 @@ void FocusWidget::setTexture(RenderTexture *texture)
 {
   Widget::setTexture(texture);
   _focus_texture = texture;
+  if (!_focused)
+    Widget::setTexture(_unfocus_texture);
 }
 
 void FocusWidget::setBorderColor(const RenderColor *color)
index 8352fb7..f0a4b66 100644 (file)
@@ -54,7 +54,7 @@ void Label::update()
         internalResize(w, h);
       else
         internalResize(w, _rect.height());
-    } else
+    } else if (h > _rect.height())
       internalResize(_rect.width(), h);
   }
   Widget::update();