summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-12-26 17:22:53 +0000
committerDana Jansens <danakj@orodu.net>2002-12-26 17:22:53 +0000
commit2b2f81b93c89c2a2d6abc3b12dee66b8e2a0452d (patch)
tree2705227033d83d5fc9e1bbbde6143c7c6ab96fb7
parent5029fc97c81c25c8934989722985e772079bc166 (diff)
support the button pressed resources better
-rw-r--r--otk/eventdispatcher.cc5
-rw-r--r--otk/otk_wrap.cc55
-rw-r--r--otk/style.cc10
-rw-r--r--otk/style.hh4
-rw-r--r--otk/widget.cc6
-rw-r--r--otk/widget.hh4
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;
};