@@ -79,8 +79,8 @@ namespace CP_SDK::UI::DefaultComponents {
7979 m_Icon->RTransform ()->set_pivot (Vector2 ( 1 .0f , 0 .5f ));
8080 m_Icon->RTransform ()->set_anchorMin (Vector2 ( 1 .0f , 0 .5f ));
8181 m_Icon->RTransform ()->set_anchorMax (Vector2 ( 1 .0f , 0 .5f ));
82- m_Icon->RTransform ()->set_anchoredPosition (Vector2 (-0 .5f , 0 .0f ));
83- m_Icon->RTransform ()->set_sizeDelta (Vector2 ( 4 .0f , 4 .0f ));
82+ m_Icon->RTransform ()->set_anchoredPosition (Vector2 (-1 .5f , 0 .0f ));
83+ m_Icon->RTransform ()->set_sizeDelta (Vector2 ( 3 .0f , 3 .0f ));
8484 m_Icon->SetSprite (UISystem::GetUIDownArrowSprite ().Ptr ());
8585 m_Icon->OnClick ({this , &DefaultCDropdown::Button_OnClick});
8686
@@ -150,22 +150,28 @@ namespace CP_SDK::UI::DefaultComponents {
150150 m_Icon->SetInteractable (p_Interactable);
151151 }
152152 // / @brief Set available options
153- // / @param p_Options New options list
154- void DefaultCDropdown::SetOptions_Impl (const std::vector<std::u16string>& p_Options)
153+ // / @param options New options list
154+ // / @param notifyOnValueChanged Should notify on value changed?
155+ void DefaultCDropdown::SetOptions_Impl (const std::vector<std::u16string>& options, bool notifyOnValueChanged)
155156 {
157+ auto l_ValueStr = std::u16string (GetValue_Impl ());
156158 m_Options.clear ();
157159
158- if (!p_Options .empty ())
160+ if (!options .empty ())
159161 {
160- m_Options.reserve (p_Options .size ());
161- m_Options.insert (m_Options .begin (), p_Options .begin (), p_Options .end ());
162+ m_Options.reserve (options .size ());
163+ m_Options.insert (options .begin (), options .begin (), options .end ());
162164 }
163165
164- if (m_Value > m_Options.size ())
166+ auto l_It = std::find (m_Options.begin (), m_Options.end (), l_ValueStr);
167+ auto l_NewValue = l_It != m_Options.end () ? l_It - m_Options.begin () : -1 ;
168+ if (m_Value != l_NewValue)
165169 {
166- m_Value = - 1 ;
170+ m_Value = l_NewValue ;
167171 Refresh ();
168- Notify ();
172+
173+ if (notifyOnValueChanged)
174+ Notify ();
169175 }
170176 else
171177 Refresh ();
0 commit comments