MCPcopy Create free account
hub / github.com/TankOs/SFGUI / Create

Method Create

src/SFGUI/Selector.cpp:52–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52Selector::Ptr Selector::Create( const std::string& widget, const std::string& id, const std::string& class_, const std::string& state, HierarchyType hierarchy, Ptr parent ) {
53 Ptr selector( new Selector );
54
55 selector->m_widget = widget;
56 selector->m_id = id;
57 selector->m_class = class_;
58
59 std::string uppercase_state( state );
60 std::transform( uppercase_state.begin(), uppercase_state.end(), uppercase_state.begin(), toupper );
61
62 if( uppercase_state == "NORMAL" ) {
63 selector->m_state.reset( new Widget::State( Widget::State::NORMAL ) );
64 }
65 else if( uppercase_state == "ACTIVE" ) {
66 selector->m_state.reset( new Widget::State( Widget::State::ACTIVE ) );
67 }
68 else if( uppercase_state == "PRELIGHT" ) {
69 selector->m_state.reset( new Widget::State( Widget::State::PRELIGHT ) );
70 }
71 else if( uppercase_state == "SELECTED" ) {
72 selector->m_state.reset( new Widget::State( Widget::State::SELECTED ) );
73 }
74 else if( uppercase_state == "INSENSITIVE" ) {
75 selector->m_state.reset( new Widget::State( Widget::State::INSENSITIVE ) );
76 }
77 else if( !uppercase_state.empty() ) {
78 throw( ParserException( "Invalid state: " + state ) );
79 }
80
81 selector->m_hierarchy_type = hierarchy;
82
83 if( hierarchy != HierarchyType::ROOT ) {
84 selector->m_parent = parent;
85 }
86
87 selector->m_hash = std::hash<std::string>()( selector->BuildString() );
88
89 return selector;
90}
91
92const std::string& Selector::GetWidgetName() const {
93 return m_widget;

Callers

nothing calls this directly

Calls 3

endMethod · 0.80
emptyMethod · 0.80
BuildStringMethod · 0.80

Tested by

no test coverage detected