diff --git a/code/studio/src/plugins/gui_editor/property_browser_ctrl.cpp b/code/studio/src/plugins/gui_editor/property_browser_ctrl.cpp index d5feba8f7..6eef4e2f6 100644 --- a/code/studio/src/plugins/gui_editor/property_browser_ctrl.cpp +++ b/code/studio/src/plugins/gui_editor/property_browser_ctrl.cpp @@ -101,23 +101,97 @@ namespace } }; + + class NelButtonType + { + public: + + enum NELButtonTypes + { + BUTTON_TYPE_PUSH = 0, + BUTTON_TYPE_TOGGLE = 1, + BUTTON_TYPE_RADIO = 2 + }; + + static int fromString( const std::string &s ) + { + int r = -1; + + if( s == "push_button" ) + r = BUTTON_TYPE_PUSH; + else + if( s == "toggle_button" ) + r = BUTTON_TYPE_TOGGLE; + else + if( s == "radio_button" ) + r = BUTTON_TYPE_RADIO; + + return r; + } + + static std::string toString( int value ) + { + std::string v; + + switch( value ) + { + case BUTTON_TYPE_PUSH: v = "push_button"; break; + case BUTTON_TYPE_TOGGLE: v = "toggle_button"; break; + case BUTTON_TYPE_RADIO: v = "radio_button"; break; + } + + return v; + } + + }; + + class NelTxtJustification + { + public: + + enum NELTxtJustification + { + TEXT_CLIPWORD, + TEXT_DONTCLIPWORD, + TEXT_JUSTIFIED + }; + + static int fromString( const std::string &s ) + { + int r = -1; + + if( s == "clip_word" ) + r = TEXT_CLIPWORD; + else + if( s == "dont_clip_word" ) + r = TEXT_DONTCLIPWORD; + else + if( s == "justified" ) + r = TEXT_JUSTIFIED; + + return r; + } + + static std::string toString( int value ) + { + std::string v; + + switch( value ) + { + case TEXT_CLIPWORD: v = "clip_word"; break; + case TEXT_DONTCLIPWORD: v = "dont_clip_word"; break; + case TEXT_JUSTIFIED: v = "justified"; break; + } + + return v; + } + + }; + } namespace GUIEditor { - enum NELButtonTypes - { - BUTTON_TYPE_PUSH = 0, - BUTTON_TYPE_TOGGLE = 1, - BUTTON_TYPE_RADIO = 2 - }; - - enum NELTxtJustification - { - TEXT_CLIPWORD, - TEXT_DONTCLIPWORD, - TEXT_JUSTIFIED - }; CPropBrowserCtrl::CPropBrowserCtrl() { @@ -229,17 +303,10 @@ namespace GUIEditor if( e == NULL ) return; - if( ( value < BUTTON_TYPE_PUSH ) || ( value > BUTTON_TYPE_RADIO ) ) - return; - std::string v; - - switch( value ) - { - case BUTTON_TYPE_PUSH: v = "push_button"; break; - case BUTTON_TYPE_TOGGLE: v = "toggle_button"; break; - case BUTTON_TYPE_RADIO: v = "radio_button"; break; - } + v = NelButtonType::toString( value ); + if( v.empty() ) + return; e->setProperty( propName.toUtf8().constData(), v ); } @@ -250,16 +317,10 @@ namespace GUIEditor if( e == NULL ) return; - if( ( value < TEXT_CLIPWORD ) || ( value > TEXT_JUSTIFIED ) ) - return; - std::string v; - switch( value ) - { - case TEXT_CLIPWORD: v = "clip_word"; break; - case TEXT_DONTCLIPWORD: v = "dont_clip_word"; break; - case TEXT_JUSTIFIED: v = "justified"; break; - } + v = NelTxtJustification::toString( value ); + if( v.empty() ) + return; e->setProperty( propName.toUtf8().constData(), v ); } @@ -327,15 +388,7 @@ namespace GUIEditor return; int e = -1; - if( btype == "push_button" ) - e = BUTTON_TYPE_PUSH; - else - if( btype == "toggle_button" ) - e = BUTTON_TYPE_TOGGLE; - else - if( btype == "radio_button" ) - e = BUTTON_TYPE_RADIO; - + e = NelButtonType::fromString( btype ); if( e == -1 ) return; @@ -361,15 +414,7 @@ namespace GUIEditor return; int e = -1; - if( j == "clip_word" ) - e = TEXT_CLIPWORD; - else - if( j == "dont_clip_word" ) - e = TEXT_DONTCLIPWORD; - else - if( j == "justified" ) - e = TEXT_JUSTIFIED; - + e = NelTxtJustification::fromString( j ); if( e == -1 ) return;