support the button pressed resources better
This commit is contained in:
parent
5029fc97c8
commit
2b2f81b93c
6 changed files with 19 additions and 65 deletions
|
@ -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 {
|
||||
|
|
|
@ -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 },
|
||||
|
|
10
otk/style.cc
10
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);
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue