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
|
// any other types are not ones we're interested in
|
||||||
if (e.xfocus.detail == NotifyNonlinear) {
|
if (e.xfocus.detail == NotifyNonlinear) {
|
||||||
if (e.xfocus.window != focus) {
|
if (e.xfocus.window != focus) {
|
||||||
|
if (focus)
|
||||||
unfocus = focus;
|
unfocus = focus;
|
||||||
focus = e.xfocus.window;
|
focus = e.xfocus.window;
|
||||||
|
printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (e.type == FocusOut) {
|
} else if (e.type == FocusOut) {
|
||||||
|
@ -88,6 +90,7 @@ void OtkEventDispatcher::dispatchEvents(void)
|
||||||
if (e.xfocus.window == focus) {
|
if (e.xfocus.window == focus) {
|
||||||
unfocus = focus;
|
unfocus = focus;
|
||||||
focus = None;
|
focus = None;
|
||||||
|
printf("FocusIn focus=%lx unfocus=%lx\n", focus, unfocus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} 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) {
|
static PyObject * OtkWidget_swigregister(PyObject *self, PyObject *args) {
|
||||||
PyObject *obj;
|
PyObject *obj;
|
||||||
if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
|
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) {
|
static PyObject *_wrap_Style_b_pressed_focus_set(PyObject *self, PyObject *args) {
|
||||||
PyObject *resultobj;
|
PyObject *resultobj;
|
||||||
otk::Style *arg1 = (otk::Style *) 0 ;
|
otk::Style *arg1 = (otk::Style *) 0 ;
|
||||||
|
@ -12832,7 +12780,6 @@ static PyMethodDef SwigMethods[] = {
|
||||||
{ (char *)"OtkWidget_setStyle", _wrap_OtkWidget_setStyle, METH_VARARGS },
|
{ (char *)"OtkWidget_setStyle", _wrap_OtkWidget_setStyle, METH_VARARGS },
|
||||||
{ (char *)"OtkWidget_eventDispatcher", _wrap_OtkWidget_eventDispatcher, METH_VARARGS },
|
{ (char *)"OtkWidget_eventDispatcher", _wrap_OtkWidget_eventDispatcher, METH_VARARGS },
|
||||||
{ (char *)"OtkWidget_setEventDispatcher", _wrap_OtkWidget_setEventDispatcher, 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 *)"OtkWidget_swigregister", OtkWidget_swigregister, METH_VARARGS },
|
||||||
{ (char *)"new_OtkFocusWidget", _wrap_new_OtkFocusWidget, METH_VARARGS },
|
{ (char *)"new_OtkFocusWidget", _wrap_new_OtkFocusWidget, METH_VARARGS },
|
||||||
{ (char *)"delete_OtkFocusWidget", _wrap_delete_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_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_set", _wrap_Style_b_unfocus_set, METH_VARARGS },
|
||||||
{ (char *)"Style_b_unfocus_get", _wrap_Style_b_unfocus_get, 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_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_focus_get", _wrap_Style_b_pressed_focus_get, METH_VARARGS },
|
||||||
{ (char *)"Style_b_pressed_unfocus_set", _wrap_Style_b_pressed_unfocus_set, 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_focus = readDatabaseTexture("window.button.focus", "white", style);
|
||||||
b_unfocus = readDatabaseTexture("window.button.unfocus", "black", 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
|
//if neither of these can be found, we will use the previous resource
|
||||||
b_pressed_focus = readDatabaseTexture("window.button.pressed.focus",
|
b_pressed_focus = readDatabaseTexture("window.button.pressed.focus",
|
||||||
"black", style, true);
|
"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",
|
b_pressed_unfocus = readDatabaseTexture("window.button.pressed.unfocus",
|
||||||
"black", style, true);
|
"black", style, true);
|
||||||
|
if (b_pressed_unfocus.texture() == BTexture::NoTexture) {
|
||||||
|
b_pressed_unfocus = readDatabaseTexture("window.button.pressed", "black",
|
||||||
|
style);
|
||||||
|
}
|
||||||
|
|
||||||
if (close_button.mask != None)
|
if (close_button.mask != None)
|
||||||
XFreePixmap(OBDisplay::display, close_button.mask);
|
XFreePixmap(OBDisplay::display, close_button.mask);
|
||||||
|
|
|
@ -47,7 +47,7 @@ public:
|
||||||
l_focus, l_unfocus,
|
l_focus, l_unfocus,
|
||||||
h_focus, h_unfocus,
|
h_focus, h_unfocus,
|
||||||
b_focus, b_unfocus,
|
b_focus, b_unfocus,
|
||||||
b_pressed, b_pressed_focus, b_pressed_unfocus,
|
b_pressed_focus, b_pressed_unfocus,
|
||||||
g_focus, g_unfocus;
|
g_focus, g_unfocus;
|
||||||
|
|
||||||
PixmapMask close_button, max_button, icon_button, stick_button;
|
PixmapMask close_button, max_button, icon_button, stick_button;
|
||||||
|
@ -103,7 +103,7 @@ public:
|
||||||
inline BTexture *getButtonUnfocus(void) { return &b_unfocus; }
|
inline BTexture *getButtonUnfocus(void) { return &b_unfocus; }
|
||||||
|
|
||||||
inline BTexture *getButtonPressedFocus(void)
|
inline BTexture *getButtonPressedFocus(void)
|
||||||
{ return &b_pressed; }
|
{ return &b_pressed_focus; }
|
||||||
inline BTexture *getButtonPressedUnfocus(void)
|
inline BTexture *getButtonPressedUnfocus(void)
|
||||||
{ return &b_pressed_unfocus; }
|
{ return &b_pressed_unfocus; }
|
||||||
|
|
||||||
|
|
|
@ -248,6 +248,8 @@ void OtkWidget::render(void)
|
||||||
{
|
{
|
||||||
if (!_texture) return;
|
if (!_texture) return;
|
||||||
|
|
||||||
|
printf("rendering %lx\n", _texture);
|
||||||
|
|
||||||
_bg_pixmap = _texture->render(_rect.width(), _rect.height(), _bg_pixmap);
|
_bg_pixmap = _texture->render(_rect.width(), _rect.height(), _bg_pixmap);
|
||||||
|
|
||||||
if (_bg_pixmap)
|
if (_bg_pixmap)
|
||||||
|
@ -386,7 +388,7 @@ void OtkWidget::adjustVert(void)
|
||||||
void OtkWidget::update(void)
|
void OtkWidget::update(void)
|
||||||
{
|
{
|
||||||
if (_dirty) {
|
if (_dirty) {
|
||||||
if (!_unmanaged)
|
printf("widget dirty, redrawing\n");
|
||||||
adjust();
|
adjust();
|
||||||
render();
|
render();
|
||||||
XClearWindow(OBDisplay::display, _window);
|
XClearWindow(OBDisplay::display, _window);
|
||||||
|
|
|
@ -120,8 +120,6 @@ public:
|
||||||
{ return _event_dispatcher; }
|
{ return _event_dispatcher; }
|
||||||
void setEventDispatcher(otk::OtkEventDispatcher *disp);
|
void setEventDispatcher(otk::OtkEventDispatcher *disp);
|
||||||
|
|
||||||
void unmanaged(void) { _unmanaged = true; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
bool _dirty;
|
bool _dirty;
|
||||||
|
@ -166,8 +164,6 @@ protected:
|
||||||
bool _fixed_width;
|
bool _fixed_width;
|
||||||
bool _fixed_height;
|
bool _fixed_height;
|
||||||
|
|
||||||
bool _unmanaged;
|
|
||||||
|
|
||||||
OtkEventDispatcher *_event_dispatcher;
|
OtkEventDispatcher *_event_dispatcher;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue