(svn r17175) -Codechange: Only auto-raise push buttons.

This commit is contained in:
alberth 2009-08-14 21:27:08 +00:00
parent fe74c526d8
commit e6a1da11a3
2 changed files with 7 additions and 6 deletions

View File

@ -194,13 +194,14 @@ void CDECL Window::SetWidgetsLoweredState(bool lowered_stat, int widgets, ...)
} }
/** /**
* Raise all buttons of the window * Raise the buttons of the window.
* @param autoraise Raise only the push buttons of the window.
*/ */
void Window::RaiseButtons() void Window::RaiseButtons(bool autoraise)
{ {
if (this->widget != NULL) { if (this->widget != NULL) {
for (uint i = 0; i < this->widget_count; i++) { for (uint i = 0; i < this->widget_count; i++) {
if (this->IsWidgetLowered(i)) { if ((!autoraise || (this->widget[i].type & WWB_PUSHBUTTON)) && this->IsWidgetLowered(i)) {
this->RaiseWidget(i); this->RaiseWidget(i);
this->InvalidateWidget(i); this->InvalidateWidget(i);
} }
@ -208,7 +209,7 @@ void Window::RaiseButtons()
} }
if (this->nested_array != NULL) { if (this->nested_array != NULL) {
for (uint i = 0; i < this->nested_array_size; i++) { for (uint i = 0; i < this->nested_array_size; i++) {
if (this->nested_array[i] != NULL && this->IsWidgetLowered(i)) { if (this->nested_array[i] != NULL && (!autoraise || (this->nested_array[i]->type & WWB_PUSHBUTTON)) && this->IsWidgetLowered(i)) {
this->RaiseWidget(i); this->RaiseWidget(i);
this->InvalidateWidget(i); this->InvalidateWidget(i);
} }
@ -1422,7 +1423,7 @@ static void DecreaseWindowCounters()
FOR_ALL_WINDOWS_FROM_FRONT(w) { FOR_ALL_WINDOWS_FROM_FRONT(w) {
if ((w->flags4 & WF_TIMEOUT_MASK) && !(--w->flags4 & WF_TIMEOUT_MASK)) { if ((w->flags4 & WF_TIMEOUT_MASK) && !(--w->flags4 & WF_TIMEOUT_MASK)) {
w->OnTimeout(); w->OnTimeout();
if (w->desc_flags & WDF_UNCLICK_BUTTONS) w->RaiseButtons(); if (w->desc_flags & WDF_UNCLICK_BUTTONS) w->RaiseButtons(true);
} }
} }
} }

View File

@ -502,7 +502,7 @@ public:
void HandleButtonClick(byte widget); void HandleButtonClick(byte widget);
const Widget *GetWidgetOfType(WidgetType widget_type) const; const Widget *GetWidgetOfType(WidgetType widget_type) const;
void RaiseButtons(); void RaiseButtons(bool autoraise = false);
void CDECL SetWidgetsDisabledState(bool disab_stat, int widgets, ...); void CDECL SetWidgetsDisabledState(bool disab_stat, int widgets, ...);
void CDECL SetWidgetsHiddenState(bool hidden_stat, int widgets, ...); void CDECL SetWidgetsHiddenState(bool hidden_stat, int widgets, ...);
void CDECL SetWidgetsLoweredState(bool lowered_stat, int widgets, ...); void CDECL SetWidgetsLoweredState(bool lowered_stat, int widgets, ...);