浏览代码

Add disabled theme icons for CheckBox

Tomasz Chabora 5 年之前
父节点
当前提交
3a40c268a6

+ 4 - 2
scene/gui/check_box.cpp

@@ -34,7 +34,9 @@
 
 Size2 CheckBox::get_icon_size() const {
 	Ref<Texture2D> checked = Control::get_theme_icon("checked");
+	Ref<Texture2D> checked_disabled = Control::get_theme_icon("checked_disabled");
 	Ref<Texture2D> unchecked = Control::get_theme_icon("unchecked");
+	Ref<Texture2D> unchecked_disabled = Control::get_theme_icon("unchecked_disabled");
 	Ref<Texture2D> radio_checked = Control::get_theme_icon("radio_checked");
 	Ref<Texture2D> radio_unchecked = Control::get_theme_icon("radio_unchecked");
 
@@ -73,8 +75,8 @@ void CheckBox::_notification(int p_what) {
 
 		RID ci = get_canvas_item();
 
-		Ref<Texture2D> on = Control::get_theme_icon(is_radio() ? "radio_checked" : "checked");
-		Ref<Texture2D> off = Control::get_theme_icon(is_radio() ? "radio_unchecked" : "unchecked");
+		Ref<Texture2D> on = Control::get_theme_icon(vformat("%s%s", is_radio() ? "radio_checked" : "checked", is_disabled() ? "_disabled" : ""));
+		Ref<Texture2D> off = Control::get_theme_icon(vformat("%s%s", is_radio() ? "radio_unchecked" : "unchecked", is_disabled() ? "_disabled" : ""));
 		Ref<StyleBox> sb = get_theme_stylebox("normal");
 
 		Vector2 ofs;

二进制
scene/resources/default_theme/checked_disabled.png


+ 4 - 0
scene/resources/default_theme/default_theme.cpp

@@ -329,9 +329,13 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
 	theme->set_stylebox("focus", "CheckBox", cbx_focus);
 
 	theme->set_icon("checked", "CheckBox", make_icon(checked_png));
+	theme->set_icon("checked_disabled", "CheckBox", make_icon(checked_disabled_png));
 	theme->set_icon("unchecked", "CheckBox", make_icon(unchecked_png));
+	theme->set_icon("unchecked_disabled", "CheckBox", make_icon(unchecked_disabled_png));
 	theme->set_icon("radio_checked", "CheckBox", make_icon(radio_checked_png));
+	theme->set_icon("radio_checked_disabled", "CheckBox", make_icon(radio_checked_disabled_png));
 	theme->set_icon("radio_unchecked", "CheckBox", make_icon(radio_unchecked_png));
+	theme->set_icon("radio_unchecked_disabled", "CheckBox", make_icon(radio_unchecked_disabled_png));
 
 	theme->set_font("font", "CheckBox", default_font);
 

二进制
scene/resources/default_theme/radio_checked_disabled.png


二进制
scene/resources/default_theme/radio_unchecked_disabled.png


文件差异内容过多而无法显示
+ 0 - 0
scene/resources/default_theme/theme_data.h


二进制
scene/resources/default_theme/unchecked_disabled.png


部分文件因为文件数量过多而无法显示