ThemeDB: expose method for making a copy of the default theme
This commit is contained in:
parent
88f3b5f9d5
commit
5410e2f050
@ -10,6 +10,12 @@
|
|||||||
<tutorials>
|
<tutorials>
|
||||||
</tutorials>
|
</tutorials>
|
||||||
<methods>
|
<methods>
|
||||||
|
<method name="generate_default_theme">
|
||||||
|
<return type="Theme" />
|
||||||
|
<description>
|
||||||
|
Returns a new copy of the default engine [Theme]. Unlike [method get_default_theme], this theme resource can be overridden.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="get_default_theme">
|
<method name="get_default_theme">
|
||||||
<return type="Theme" />
|
<return type="Theme" />
|
||||||
<description>
|
<description>
|
||||||
|
@ -123,6 +123,39 @@ Ref<Theme> ThemeDB::get_default_theme() {
|
|||||||
return default_theme;
|
return default_theme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ref<Theme> ThemeDB::generate_default_theme() {
|
||||||
|
Ref<Theme> t;
|
||||||
|
t.instantiate();
|
||||||
|
|
||||||
|
float default_scale = default_theme->get_default_base_scale();
|
||||||
|
Ref<Font> default_font = default_theme->get_default_font();
|
||||||
|
|
||||||
|
Ref<Texture2D> default_icon;
|
||||||
|
Ref<StyleBox> default_style;
|
||||||
|
|
||||||
|
Ref<FontVariation> bold_font;
|
||||||
|
Ref<FontVariation> bold_italics_font;
|
||||||
|
Ref<FontVariation> italics_font;
|
||||||
|
|
||||||
|
if (default_font.is_valid()) {
|
||||||
|
bold_font.instantiate();
|
||||||
|
bold_font->set_base_font(default_font);
|
||||||
|
bold_font->set_variation_embolden(1.2);
|
||||||
|
|
||||||
|
bold_italics_font.instantiate();
|
||||||
|
bold_italics_font->set_base_font(default_font);
|
||||||
|
bold_italics_font->set_variation_embolden(1.2);
|
||||||
|
bold_italics_font->set_variation_transform(Transform2D(1.0, 0.2, 0.0, 1.0, 0.0, 0.0));
|
||||||
|
|
||||||
|
italics_font.instantiate();
|
||||||
|
italics_font->set_base_font(default_font);
|
||||||
|
italics_font->set_variation_transform(Transform2D(1.0, 0.2, 0.0, 1.0, 0.0, 0.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
fill_default_theme(t, default_font, Ref<Font>(), Ref<Font>(), Ref<Font>(), default_icon, default_style, default_scale);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
void ThemeDB::set_project_theme(const Ref<Theme> &p_project_default) {
|
void ThemeDB::set_project_theme(const Ref<Theme> &p_project_default) {
|
||||||
project_theme = p_project_default;
|
project_theme = p_project_default;
|
||||||
}
|
}
|
||||||
@ -417,6 +450,7 @@ void ThemeDB::_sort_theme_items() {
|
|||||||
void ThemeDB::_bind_methods() {
|
void ThemeDB::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_default_theme"), &ThemeDB::get_default_theme);
|
ClassDB::bind_method(D_METHOD("get_default_theme"), &ThemeDB::get_default_theme);
|
||||||
ClassDB::bind_method(D_METHOD("get_project_theme"), &ThemeDB::get_project_theme);
|
ClassDB::bind_method(D_METHOD("get_project_theme"), &ThemeDB::get_project_theme);
|
||||||
|
ClassDB::bind_method(D_METHOD("generate_default_theme"), &ThemeDB::generate_default_theme);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_fallback_base_scale", "base_scale"), &ThemeDB::set_fallback_base_scale);
|
ClassDB::bind_method(D_METHOD("set_fallback_base_scale", "base_scale"), &ThemeDB::set_fallback_base_scale);
|
||||||
ClassDB::bind_method(D_METHOD("get_fallback_base_scale"), &ThemeDB::get_fallback_base_scale);
|
ClassDB::bind_method(D_METHOD("get_fallback_base_scale"), &ThemeDB::get_fallback_base_scale);
|
||||||
|
@ -134,6 +134,8 @@ public:
|
|||||||
void set_default_theme(const Ref<Theme> &p_default);
|
void set_default_theme(const Ref<Theme> &p_default);
|
||||||
Ref<Theme> get_default_theme();
|
Ref<Theme> get_default_theme();
|
||||||
|
|
||||||
|
Ref<Theme> generate_default_theme();
|
||||||
|
|
||||||
void set_project_theme(const Ref<Theme> &p_project_default);
|
void set_project_theme(const Ref<Theme> &p_project_default);
|
||||||
Ref<Theme> get_project_theme();
|
Ref<Theme> get_project_theme();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user