From c151c124cba98b6599acdb487e3c78bad8a72952 Mon Sep 17 00:00:00 2001 From: auria Date: Fri, 26 Feb 2010 19:21:53 +0000 Subject: [PATCH] Added utility methods to set badges in GUI; used them to fix missing green badge when selecting kart git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@4861 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/guiengine/widget.hpp | 9 +++++++++ src/states_screens/dialogs/gp_info_dialog.cpp | 2 +- src/states_screens/kart_selection.cpp | 9 +++++---- src/states_screens/options_screen_input.cpp | 18 +++++++++--------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/guiengine/widget.hpp b/src/guiengine/widget.hpp index c233f9f0b..ac507a075 100644 --- a/src/guiengine/widget.hpp +++ b/src/guiengine/widget.hpp @@ -218,6 +218,15 @@ namespace GUIEngine /** A bitmask of which badges to show, if any; choices are *_BADGE, defined above */ int m_badges; + void setBadge(int badge_bit) + { + m_badges |= badge_bit; + } + void unsetBadge(int badge_bit) + { + m_badges &= (~badge_bit); + } + /** Set to false if widget is something that should not receieve focus */ bool m_focusable; diff --git a/src/states_screens/dialogs/gp_info_dialog.cpp b/src/states_screens/dialogs/gp_info_dialog.cpp index 92a66056f..ec3308476 100644 --- a/src/states_screens/dialogs/gp_info_dialog.cpp +++ b/src/states_screens/dialogs/gp_info_dialog.cpp @@ -145,7 +145,7 @@ GPInfoDialog::GPInfoDialog(const std::string& gpIdent, const float w, const floa { okBtn->m_properties[PROP_ID] = "cannot_start"; okBtn->m_text = _("This Grand Prix is broken!"); - okBtn->m_badges |= BAD_BADGE; + okBtn->setBadge(BAD_BADGE); } okBtn->x = m_area.getWidth()/2 - 200; diff --git a/src/states_screens/kart_selection.cpp b/src/states_screens/kart_selection.cpp index 3ef8be671..633c770ea 100644 --- a/src/states_screens/kart_selection.cpp +++ b/src/states_screens/kart_selection.cpp @@ -432,7 +432,8 @@ FocusDispatcher* g_dispatcher = NULL; player_id_w *= 2; player_name_w = 0; - modelView->m_badges = OK_BADGE; + modelView->setBadge(OK_BADGE); + /* irr::video::ITexture* texture = irr_driver->getTexture( file_manager->getTextureFile("green_check.png").c_str() ) ; const int check_size = 128; // TODO: reduce size on smaller resolutions? @@ -1170,7 +1171,7 @@ bool KartSelectionScreen::validateKartChoices() // reset all marks, we'll re-add them next if errors are still there for (int n=0; nm_badges = 0; + m_kart_widgets[n].modelView->unsetBadge(BAD_BADGE); } for (int n=0; n Setting red badge on player " << n << std::endl; // player m is ready, so player n should not choose this name - m_kart_widgets[n].modelView->m_badges = BAD_BADGE; + m_kart_widgets[n].modelView->setBadge(BAD_BADGE); } else if (m_kart_widgets[n].isReady() && !m_kart_widgets[m].isReady()) { std::cout << "--> Setting red badge on player " << m << std::endl; // player n is ready, so player m should not choose this name - m_kart_widgets[m].modelView->m_badges = BAD_BADGE; + m_kart_widgets[m].modelView->setBadge(BAD_BADGE); } else if (m_kart_widgets[n].isReady() && m_kart_widgets[m].isReady()) { diff --git a/src/states_screens/options_screen_input.cpp b/src/states_screens/options_screen_input.cpp index 25c04892e..a7b3e5149 100644 --- a/src/states_screens/options_screen_input.cpp +++ b/src/states_screens/options_screen_input.cpp @@ -61,7 +61,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -77,7 +77,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -93,7 +93,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -109,7 +109,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -137,7 +137,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); //std::cout << "Setting bad badge!!!!\n"; } else @@ -154,7 +154,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -170,7 +170,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -186,7 +186,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else { @@ -202,7 +202,7 @@ void OptionsScreenInput::updateInputButtons(DeviceConfig* config) // check if another binding already uses this key if (existing_bindings.find(binding_name) != existing_bindings.end()) { - btn->m_badges = BAD_BADGE; + btn->setBadge(BAD_BADGE); } else {