From ccc4c1ba5e184922f43172a90d6a2b8e64f9511a Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Fri, 26 Aug 2011 15:56:56 -0300 Subject: [PATCH] some fancy --- modules/core_ui/styles/buttons.otui | 4 ++++ modules/core_ui/styles/panels.otui | 4 +++- src/framework/ui/uiwidget.cpp | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/core_ui/styles/buttons.otui b/modules/core_ui/styles/buttons.otui index cc8a1e8e..f9ead030 100644 --- a/modules/core_ui/styles/buttons.otui +++ b/modules/core_ui/styles/buttons.otui @@ -1,5 +1,6 @@ Button < UIButton font: helvetica-11px-bold + background-color: #ffffff color: #f0ad4dff size: 106 24 border-image: @@ -17,3 +18,6 @@ Button < UIButton source: /core_ui/images/button_down.png border: 5 + state.disabled: + color: #999999 + background-color: #ffffff88 diff --git a/modules/core_ui/styles/panels.otui b/modules/core_ui/styles/panels.otui index bb94e92a..717bf1fd 100644 --- a/modules/core_ui/styles/panels.otui +++ b/modules/core_ui/styles/panels.otui @@ -5,11 +5,13 @@ FlatPanel < Panel source: /core_ui/images/panel_flat.png border: 4 + RoundedPanel < Panel - color: #ffffffc0 + background-color: #ffffffdd border-image: source: /core_ui/images/panel_rounded.png border: 4 + RectPanel < UIWidget image: /core_ui/images/empty_rect.png \ No newline at end of file diff --git a/src/framework/ui/uiwidget.cpp b/src/framework/ui/uiwidget.cpp index 21687c15..ddb93cf9 100644 --- a/src/framework/ui/uiwidget.cpp +++ b/src/framework/ui/uiwidget.cpp @@ -503,7 +503,7 @@ void UIWidget::updateState(WidgetState state) UIWidgetPtr parent; do { parent = widget->getParent(); - if(!widget->getRect().contains(mousePos) || + if(!widget->isExplicitlyEnabled() || !widget->getRect().contains(mousePos) || (parent && widget != parent->getChildByPos(mousePos))) { newStatus = false; break; @@ -514,14 +514,16 @@ void UIWidget::updateState(WidgetState state) newStatus = m_pressed; } else if(state == DisabledState) { + bool enabled = true; updateChildren = true; UIWidgetPtr widget = asUIWidget(); do { if(!widget->isExplicitlyEnabled()) { - newStatus = false; + enabled = false; break; } } while(widget = widget->getParent()); + newStatus = !enabled; } else { return;