From 2b2f81b93c89c2a2d6abc3b12dee66b8e2a0452d Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 26 Dec 2002 17:22:53 +0000 Subject: [PATCH] support the button pressed resources better --- otk/eventdispatcher.cc | 5 +++- otk/otk_wrap.cc | 55 ------------------------------------------ otk/style.cc | 10 +++++++- otk/style.hh | 4 +-- otk/widget.cc | 6 +++-- otk/widget.hh | 4 --- 6 files changed, 19 insertions(+), 65 deletions(-) diff --git a/otk/eventdispatcher.cc b/otk/eventdispatcher.cc index 4a70c857..c80f3857 100644 --- a/otk/eventdispatcher.cc +++ b/otk/eventdispatcher.cc @@ -78,8 +78,10 @@ void OtkEventDispatcher::dispatchEvents(void) // any other types are not ones we're interested in if (e.xfocus.detail == NotifyNonlinear) { if (e.xfocus.window != focus) { - unfocus = focus; + if (focus) + unfocus = focus; focus = e.xfocus.window; + printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus); } } } else if (e.type == FocusOut) { @@ -88,6 +90,7 @@ void OtkEventDispatcher::dispatchEvents(void) if (e.xfocus.window == focus) { unfocus = focus; focus = None; + printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus); } } } else { diff --git a/otk/otk_wrap.cc b/otk/otk_wrap.cc index a16eb875..c62d2471 100644 --- a/otk/otk_wrap.cc +++ b/otk/otk_wrap.cc @@ -3205,22 +3205,6 @@ static PyObject *_wrap_OtkWidget_setEventDispatcher(PyObject *self, PyObject *ar } -static PyObject *_wrap_OtkWidget_unmanaged(PyObject *self, PyObject *args) { - PyObject *resultobj; - otk::OtkWidget *arg1 = (otk::OtkWidget *) 0 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:OtkWidget_unmanaged",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_otk__OtkWidget,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->unmanaged(); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - static PyObject * OtkWidget_swigregister(PyObject *self, PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; @@ -10049,42 +10033,6 @@ static PyObject *_wrap_Style_b_unfocus_get(PyObject *self, PyObject *args) { } -static PyObject *_wrap_Style_b_pressed_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - otk::Style *arg1 = (otk::Style *) 0 ; - otk::BTexture *arg2 = (otk::BTexture *) 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:Style_b_pressed_set",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_otk__Style,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_otk__BTexture,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->b_pressed = *arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_Style_b_pressed_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - otk::Style *arg1 = (otk::Style *) 0 ; - otk::BTexture *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:Style_b_pressed_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_otk__Style,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (otk::BTexture *)& ((arg1)->b_pressed); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_otk__BTexture, 0); - return resultobj; - fail: - return NULL; -} - - static PyObject *_wrap_Style_b_pressed_focus_set(PyObject *self, PyObject *args) { PyObject *resultobj; otk::Style *arg1 = (otk::Style *) 0 ; @@ -12832,7 +12780,6 @@ static PyMethodDef SwigMethods[] = { { (char *)"OtkWidget_setStyle", _wrap_OtkWidget_setStyle, METH_VARARGS }, { (char *)"OtkWidget_eventDispatcher", _wrap_OtkWidget_eventDispatcher, METH_VARARGS }, { (char *)"OtkWidget_setEventDispatcher", _wrap_OtkWidget_setEventDispatcher, METH_VARARGS }, - { (char *)"OtkWidget_unmanaged", _wrap_OtkWidget_unmanaged, METH_VARARGS }, { (char *)"OtkWidget_swigregister", OtkWidget_swigregister, METH_VARARGS }, { (char *)"new_OtkFocusWidget", _wrap_new_OtkFocusWidget, METH_VARARGS }, { (char *)"delete_OtkFocusWidget", _wrap_delete_OtkFocusWidget, METH_VARARGS }, @@ -13089,8 +13036,6 @@ static PyMethodDef SwigMethods[] = { { (char *)"Style_b_focus_get", _wrap_Style_b_focus_get, METH_VARARGS }, { (char *)"Style_b_unfocus_set", _wrap_Style_b_unfocus_set, METH_VARARGS }, { (char *)"Style_b_unfocus_get", _wrap_Style_b_unfocus_get, METH_VARARGS }, - { (char *)"Style_b_pressed_set", _wrap_Style_b_pressed_set, METH_VARARGS }, - { (char *)"Style_b_pressed_get", _wrap_Style_b_pressed_get, METH_VARARGS }, { (char *)"Style_b_pressed_focus_set", _wrap_Style_b_pressed_focus_set, METH_VARARGS }, { (char *)"Style_b_pressed_focus_get", _wrap_Style_b_pressed_focus_get, METH_VARARGS }, { (char *)"Style_b_pressed_unfocus_set", _wrap_Style_b_pressed_unfocus_set, METH_VARARGS }, diff --git a/otk/style.cc b/otk/style.cc index 5aeef434..fcc0ff2e 100644 --- a/otk/style.cc +++ b/otk/style.cc @@ -66,13 +66,21 @@ void Style::load(const Configuration &style) { b_focus = readDatabaseTexture("window.button.focus", "white", style); b_unfocus = readDatabaseTexture("window.button.unfocus", "black", style); - b_pressed = readDatabaseTexture("window.button.pressed", "black", style); //if neither of these can be found, we will use the previous resource b_pressed_focus = readDatabaseTexture("window.button.pressed.focus", "black", style, true); + if (b_pressed_focus.texture() == BTexture::NoTexture) { + b_pressed_focus = readDatabaseTexture("window.button.pressed", "black", + style); + } + b_pressed_unfocus = readDatabaseTexture("window.button.pressed.unfocus", "black", style, true); + if (b_pressed_unfocus.texture() == BTexture::NoTexture) { + b_pressed_unfocus = readDatabaseTexture("window.button.pressed", "black", + style); + } if (close_button.mask != None) XFreePixmap(OBDisplay::display, close_button.mask); diff --git a/otk/style.hh b/otk/style.hh index 95f9b487..d3b5903e 100644 --- a/otk/style.hh +++ b/otk/style.hh @@ -47,7 +47,7 @@ public: l_focus, l_unfocus, h_focus, h_unfocus, b_focus, b_unfocus, - b_pressed, b_pressed_focus, b_pressed_unfocus, + b_pressed_focus, b_pressed_unfocus, g_focus, g_unfocus; PixmapMask close_button, max_button, icon_button, stick_button; @@ -103,7 +103,7 @@ public: inline BTexture *getButtonUnfocus(void) { return &b_unfocus; } inline BTexture *getButtonPressedFocus(void) - { return &b_pressed; } + { return &b_pressed_focus; } inline BTexture *getButtonPressedUnfocus(void) { return &b_pressed_unfocus; } diff --git a/otk/widget.cc b/otk/widget.cc index e085bc9f..9cc822ae 100644 --- a/otk/widget.cc +++ b/otk/widget.cc @@ -248,6 +248,8 @@ void OtkWidget::render(void) { if (!_texture) return; + printf("rendering %lx\n", _texture); + _bg_pixmap = _texture->render(_rect.width(), _rect.height(), _bg_pixmap); if (_bg_pixmap) @@ -386,8 +388,8 @@ void OtkWidget::adjustVert(void) void OtkWidget::update(void) { if (_dirty) { - if (!_unmanaged) - adjust(); + printf("widget dirty, redrawing\n"); + adjust(); render(); XClearWindow(OBDisplay::display, _window); } diff --git a/otk/widget.hh b/otk/widget.hh index fd14e57b..7c508fcd 100644 --- a/otk/widget.hh +++ b/otk/widget.hh @@ -120,8 +120,6 @@ public: { return _event_dispatcher; } void setEventDispatcher(otk::OtkEventDispatcher *disp); - void unmanaged(void) { _unmanaged = true; } - protected: bool _dirty; @@ -166,8 +164,6 @@ protected: bool _fixed_width; bool _fixed_height; - bool _unmanaged; - OtkEventDispatcher *_event_dispatcher; }; -- 2.45.2