Bläddra i källkod

Added :checked to selected option in drop-down

Michael 8 år sedan
förälder
incheckning
919b6f8cd5
1 ändrade filer med 13 tillägg och 2 borttagningar
  1. 13 2
      Source/Controls/WidgetDropDown.cpp

+ 13 - 2
Source/Controls/WidgetDropDown.cpp

@@ -150,6 +150,9 @@ void WidgetDropDown::SetValue(const Rocket::Core::String& _value)
 		}
 	}
 
+	if (selected_option >= 0 && selected_option < (int)options.size())
+		options[selected_option].GetElement()->SetPseudoClass("checked", false);
+
 	value = _value;
 	value_element->SetInnerRML(value);
 	value_layout_dirty = true;
@@ -182,12 +185,20 @@ void WidgetDropDown::SetSelection(int selection, bool force)
 		selection != selected_option ||
 		value != new_value)
 	{
+		if (selected_option >= 0 && selected_option < (int)options.size())
+			options[selected_option].GetElement()->SetPseudoClass("checked", false);
+		
 		selected_option = selection;
 		value = new_value;
 
 		Rocket::Core::String value_rml;
-		if (selected_option >= 0)
-			options[selected_option].GetElement()->GetInnerRML(value_rml);
+		if (selected_option >= 0) 
+		{
+			auto* el = options[selected_option].GetElement();
+			el->GetInnerRML(value_rml);
+			el->SetPseudoClass("checked", true);
+		}
+
 
 		value_element->SetInnerRML(value_rml);
 		value_layout_dirty = true;