Merge pull request #9689 from djrm/theme_fixes
Added separators using StyleBoxLine, some theme style fixes
This commit is contained in:
commit
0afa77a8a2
10 changed files with 305 additions and 16 deletions
|
@ -1628,7 +1628,7 @@ void EditorNode::_edit_current() {
|
||||||
p->add_separator();
|
p->add_separator();
|
||||||
p->add_shortcut(ED_SHORTCUT("property_editor/make_subresources_unique", TTR("Make Sub-Resources Unique")), OBJECT_UNIQUE_RESOURCES);
|
p->add_shortcut(ED_SHORTCUT("property_editor/make_subresources_unique", TTR("Make Sub-Resources Unique")), OBJECT_UNIQUE_RESOURCES);
|
||||||
p->add_separator();
|
p->add_separator();
|
||||||
p->add_icon_shortcut(gui_base->get_icon("Help", "EditorIcons"), ED_SHORTCUT("property_editor/open_help", TTR("Open in Help")), OBJECT_REQUEST_HELP);
|
p->add_icon_shortcut(gui_base->get_icon("HelpSearch", "EditorIcons"), ED_SHORTCUT("property_editor/open_help", TTR("Open in Help")), OBJECT_REQUEST_HELP);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MethodInfo> methods;
|
List<MethodInfo> methods;
|
||||||
|
@ -5642,7 +5642,7 @@ EditorNode::EditorNode() {
|
||||||
p = help_menu->get_popup();
|
p = help_menu->get_popup();
|
||||||
p->connect("id_pressed", this, "_menu_option");
|
p->connect("id_pressed", this, "_menu_option");
|
||||||
p->add_icon_item(gui_base->get_icon("ClassList", "EditorIcons"), TTR("Classes"), HELP_CLASSES);
|
p->add_icon_item(gui_base->get_icon("ClassList", "EditorIcons"), TTR("Classes"), HELP_CLASSES);
|
||||||
p->add_icon_item(gui_base->get_icon("Help", "EditorIcons"), TTR("Search"), HELP_SEARCH);
|
p->add_icon_item(gui_base->get_icon("HelpSearch", "EditorIcons"), TTR("Search"), HELP_SEARCH);
|
||||||
p->add_separator();
|
p->add_separator();
|
||||||
p->add_icon_item(gui_base->get_icon("Instance", "EditorIcons"), TTR("Online Docs"), HELP_DOCS);
|
p->add_icon_item(gui_base->get_icon("Instance", "EditorIcons"), TTR("Online Docs"), HELP_DOCS);
|
||||||
p->add_icon_item(gui_base->get_icon("Instance", "EditorIcons"), TTR("Q&A"), HELP_QA);
|
p->add_icon_item(gui_base->get_icon("Instance", "EditorIcons"), TTR("Q&A"), HELP_QA);
|
||||||
|
|
|
@ -69,6 +69,15 @@ static Ref<StyleBoxFlat> make_flat_stylebox(Color color, float p_margin_left = -
|
||||||
return style;
|
return style;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Ref<StyleBoxLine> make_line_stylebox(Color color, int thickness = 1, float grow = 1, bool vertical = false) {
|
||||||
|
Ref<StyleBoxLine> style(memnew(StyleBoxLine));
|
||||||
|
style->set_color(color);
|
||||||
|
style->set_grow(grow);
|
||||||
|
style->set_thickness(thickness);
|
||||||
|
style->set_vertical(vertical);
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
static Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat> p_style, Color p_color) {
|
static Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat> p_style, Color p_color) {
|
||||||
Ref<StyleBoxFlat> style = p_style->duplicate();
|
Ref<StyleBoxFlat> style = p_style->duplicate();
|
||||||
style->set_light_color(p_color);
|
style->set_light_color(p_color);
|
||||||
|
@ -143,6 +152,9 @@ Ref<Theme> create_editor_theme() {
|
||||||
Color title_color_hl_text_color = dark_bg ? Color(1, 1, 1, 0.9) : Color(0, 0, 0, 0.9);
|
Color title_color_hl_text_color = dark_bg ? Color(1, 1, 1, 0.9) : Color(0, 0, 0, 0.9);
|
||||||
Ref<Texture> title_hl_close_icon = theme->get_icon((dark_bg ? "GuiCloseLight" : "GuiCloseDark"), "EditorIcons");
|
Ref<Texture> title_hl_close_icon = theme->get_icon((dark_bg ? "GuiCloseLight" : "GuiCloseDark"), "EditorIcons");
|
||||||
|
|
||||||
|
bool dark_base = ((base_color.r + base_color.g + base_color.b) / 3.0) < 0.5;
|
||||||
|
Color separator_color = dark_base ? Color(1, 1, 1, 0.1) : Color(0, 0, 0, 0.1);
|
||||||
|
|
||||||
theme->set_color("highlight_color", "Editor", highlight_color);
|
theme->set_color("highlight_color", "Editor", highlight_color);
|
||||||
theme->set_color("base_color", "Editor", base_color);
|
theme->set_color("base_color", "Editor", base_color);
|
||||||
theme->set_color("dark_color_1", "Editor", dark_color_1);
|
theme->set_color("dark_color_1", "Editor", dark_color_1);
|
||||||
|
@ -244,7 +256,7 @@ Ref<Theme> create_editor_theme() {
|
||||||
theme->set_color("icon_color_pressed", "Button", Color(highlight_color.r * 1.15, highlight_color.g * 1.15, highlight_color.b * 1.15, highlight_color.a));
|
theme->set_color("icon_color_pressed", "Button", Color(highlight_color.r * 1.15, highlight_color.g * 1.15, highlight_color.b * 1.15, highlight_color.a));
|
||||||
|
|
||||||
// OptionButton
|
// OptionButton
|
||||||
Ref<StyleBoxFlat> style_option_button = make_flat_stylebox(dark_color_1, 4, 4, 4, 4);
|
Ref<StyleBoxFlat> style_option_button = make_flat_stylebox(dark_color_1, 4, 4, 8, 4);
|
||||||
style_option_button->set_border_size(border_width);
|
style_option_button->set_border_size(border_width);
|
||||||
style_option_button->set_light_color(light_color_1);
|
style_option_button->set_light_color(light_color_1);
|
||||||
style_option_button->set_dark_color(light_color_1);
|
style_option_button->set_dark_color(light_color_1);
|
||||||
|
@ -259,6 +271,8 @@ Ref<Theme> create_editor_theme() {
|
||||||
theme->set_color("font_color_pressed", "OptionButton", highlight_color);
|
theme->set_color("font_color_pressed", "OptionButton", highlight_color);
|
||||||
theme->set_color("icon_color_hover", "OptionButton", HIGHLIGHT_COLOR_LIGHT);
|
theme->set_color("icon_color_hover", "OptionButton", HIGHLIGHT_COLOR_LIGHT);
|
||||||
theme->set_icon("arrow", "OptionButton", theme->get_icon("GuiOptionArrow", "EditorIcons"));
|
theme->set_icon("arrow", "OptionButton", theme->get_icon("GuiOptionArrow", "EditorIcons"));
|
||||||
|
theme->set_constant("arrow_margin", "OptionButton", 4);
|
||||||
|
theme->set_constant("modulate_arrow", "OptionButton", true);
|
||||||
|
|
||||||
// CheckButton
|
// CheckButton
|
||||||
theme->set_icon("on", "CheckButton", theme->get_icon("GuiToggleOn", "EditorIcons"));
|
theme->set_icon("on", "CheckButton", theme->get_icon("GuiToggleOn", "EditorIcons"));
|
||||||
|
@ -271,7 +285,7 @@ Ref<Theme> create_editor_theme() {
|
||||||
style_popup_menu->set_dark_color(light_color_1);
|
style_popup_menu->set_dark_color(light_color_1);
|
||||||
style_popup_menu->set_border_blend(false);
|
style_popup_menu->set_border_blend(false);
|
||||||
theme->set_stylebox("panel", "PopupMenu", style_popup_menu);
|
theme->set_stylebox("panel", "PopupMenu", style_popup_menu);
|
||||||
theme->set_stylebox("separator", "PopupMenu", make_empty_stylebox());
|
theme->set_stylebox("separator", "PopupMenu", make_line_stylebox(separator_color, border_width, 8 - border_width));
|
||||||
|
|
||||||
// Tree & ItemList background
|
// Tree & ItemList background
|
||||||
Ref<StyleBoxFlat> style_tree_bg = make_flat_stylebox(dark_color_1, 2, 4, 2, 4);
|
Ref<StyleBoxFlat> style_tree_bg = make_flat_stylebox(dark_color_1, 2, 4, 2, 4);
|
||||||
|
@ -362,8 +376,8 @@ Ref<Theme> create_editor_theme() {
|
||||||
theme->set_icon("close", "Tabs", title_hl_close_icon);
|
theme->set_icon("close", "Tabs", title_hl_close_icon);
|
||||||
|
|
||||||
// Separatos (no separatos)
|
// Separatos (no separatos)
|
||||||
theme->set_stylebox("separator", "HSeparator", make_empty_stylebox());
|
theme->set_stylebox("separator", "HSeparator", make_line_stylebox(separator_color, border_width));
|
||||||
theme->set_stylebox("separator", "VSeparator", make_empty_stylebox());
|
theme->set_stylebox("separator", "VSeparator", make_line_stylebox(separator_color, border_width, 0, true));
|
||||||
|
|
||||||
// Debugger
|
// Debugger
|
||||||
Ref<StyleBoxFlat> style_panel_debugger = make_flat_stylebox(dark_color_2, 0, 4, 0, 0);
|
Ref<StyleBoxFlat> style_panel_debugger = make_flat_stylebox(dark_color_2, 0, 4, 0, 0);
|
||||||
|
|
BIN
editor/icons/2x/icon_variant.png
Normal file
BIN
editor/icons/2x/icon_variant.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 398 B |
Binary file not shown.
Before Width: | Height: | Size: 240 B After Width: | Height: | Size: 237 B |
146
editor/icons/source/icon_variant.svg
Normal file
146
editor/icons/source/icon_variant.svg
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
viewBox="0 0 16 16"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.92+devel unknown"
|
||||||
|
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
|
||||||
|
inkscape:export-xdpi="45"
|
||||||
|
inkscape:export-ydpi="45"
|
||||||
|
sodipodi:docname="icon_variant.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="22.627418"
|
||||||
|
inkscape:cx="12.635414"
|
||||||
|
inkscape:cy="11.860443"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="true"
|
||||||
|
units="px"
|
||||||
|
inkscape:snap-bbox="true"
|
||||||
|
inkscape:bbox-paths="true"
|
||||||
|
inkscape:bbox-nodes="true"
|
||||||
|
inkscape:snap-bbox-edge-midpoints="true"
|
||||||
|
inkscape:snap-bbox-midpoints="false"
|
||||||
|
inkscape:snap-object-midpoints="true"
|
||||||
|
inkscape:snap-center="true"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1016"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:snap-midpoints="true"
|
||||||
|
inkscape:snap-smooth-nodes="true"
|
||||||
|
inkscape:object-nodes="true"
|
||||||
|
inkscape:document-rotation="0">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid3336" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-1036.3622)">
|
||||||
|
<g
|
||||||
|
transform="translate(0,-3)"
|
||||||
|
id="layer1-5"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1">
|
||||||
|
<rect
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4320"
|
||||||
|
width="2"
|
||||||
|
height="5.9999666"
|
||||||
|
x="3"
|
||||||
|
y="1044.3622" />
|
||||||
|
<rect
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect4324"
|
||||||
|
width="2"
|
||||||
|
height="5.9999843"
|
||||||
|
x="6"
|
||||||
|
y="1044.3622" />
|
||||||
|
<rect
|
||||||
|
y="1044.3622"
|
||||||
|
x="3"
|
||||||
|
height="2.0000174"
|
||||||
|
width="1"
|
||||||
|
id="rect4326"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 3,1044.3622 a 3,3 0 0 0 -3,3 h 2 a 1.0000174,1.0000174 0 0 1 1,-1 z"
|
||||||
|
id="path4328"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
id="path4330"
|
||||||
|
d="m 14,1050.3622 a 3,3 0 0 1 -3,-3 h 2 a 1.0000174,1.0000174 0 0 0 1,1 z"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<rect
|
||||||
|
transform="scale(1,-1)"
|
||||||
|
y="-1052.3622"
|
||||||
|
x="14"
|
||||||
|
height="7.9999843"
|
||||||
|
width="2"
|
||||||
|
id="rect4334"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="scale(1,-1)"
|
||||||
|
y="-1047.3622"
|
||||||
|
x="11"
|
||||||
|
height="2.9999826"
|
||||||
|
width="2"
|
||||||
|
id="rect4338"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4340"
|
||||||
|
d="m 3,1050.3622 a 3,3 0 0 1 -3,-3 h 2 a 1.0000174,1.0000174 0 0 0 1,1 z"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4342"
|
||||||
|
d="m 8,1044.3622 a 3,3 0 0 1 3,3 H 9 a 1.0000174,1.0000174 0 0 0 -1,-1 z"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
y="1047.3622"
|
||||||
|
x="9"
|
||||||
|
height="3.0000174"
|
||||||
|
width="2"
|
||||||
|
id="rect4344"
|
||||||
|
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
|
@ -1849,30 +1849,31 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
{ // misc
|
{ // misc
|
||||||
VBoxContainer *info_left = memnew(VBoxContainer);
|
GridContainer *info_left = memnew(GridContainer);
|
||||||
info_left->set_h_size_flags(SIZE_EXPAND_FILL);
|
info_left->set_columns(2);
|
||||||
info_left->set_name(TTR("Misc"));
|
info_left->set_name(TTR("Misc"));
|
||||||
tabs->add_child(info_left);
|
tabs->add_child(info_left);
|
||||||
clicked_ctrl = memnew(LineEdit);
|
clicked_ctrl = memnew(LineEdit);
|
||||||
info_left->add_margin_child(TTR("Clicked Control:"), clicked_ctrl);
|
clicked_ctrl->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
|
info_left->add_child(memnew(Label(TTR("Clicked Control:"))));
|
||||||
|
info_left->add_child(clicked_ctrl);
|
||||||
clicked_ctrl_type = memnew(LineEdit);
|
clicked_ctrl_type = memnew(LineEdit);
|
||||||
info_left->add_margin_child(TTR("Clicked Control Type:"), clicked_ctrl_type);
|
info_left->add_child(memnew(Label(TTR("Clicked Control Type:"))));
|
||||||
|
info_left->add_child(clicked_ctrl_type);
|
||||||
|
|
||||||
live_edit_root = memnew(LineEdit);
|
live_edit_root = memnew(LineEdit);
|
||||||
|
live_edit_root->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
|
|
||||||
{
|
{
|
||||||
HBoxContainer *lehb = memnew(HBoxContainer);
|
HBoxContainer *lehb = memnew(HBoxContainer);
|
||||||
Label *l = memnew(Label(TTR("Live Edit Root:")));
|
Label *l = memnew(Label(TTR("Live Edit Root:")));
|
||||||
lehb->add_child(l);
|
info_left->add_child(l);
|
||||||
l->set_h_size_flags(SIZE_EXPAND_FILL);
|
lehb->add_child(live_edit_root);
|
||||||
le_set = memnew(Button(TTR("Set From Tree")));
|
le_set = memnew(Button(TTR("Set From Tree")));
|
||||||
lehb->add_child(le_set);
|
lehb->add_child(le_set);
|
||||||
le_clear = memnew(Button(TTR("Clear")));
|
le_clear = memnew(Button(TTR("Clear")));
|
||||||
lehb->add_child(le_clear);
|
lehb->add_child(le_clear);
|
||||||
info_left->add_child(lehb);
|
info_left->add_child(lehb);
|
||||||
MarginContainer *mc = memnew(MarginContainer);
|
|
||||||
mc->add_child(live_edit_root);
|
|
||||||
info_left->add_child(mc);
|
|
||||||
le_set->set_disabled(true);
|
le_set->set_disabled(true);
|
||||||
le_clear->set_disabled(true);
|
le_clear->set_disabled(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -584,5 +584,6 @@ Button *ConfirmationDialog::get_cancel() {
|
||||||
ConfirmationDialog::ConfirmationDialog() {
|
ConfirmationDialog::ConfirmationDialog() {
|
||||||
|
|
||||||
set_title(RTR("Please Confirm..."));
|
set_title(RTR("Please Confirm..."));
|
||||||
|
set_custom_minimum_size(Size2(200, 70));
|
||||||
cancel = add_cancel();
|
cancel = add_cancel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,11 +52,26 @@ void OptionButton::_notification(int p_what) {
|
||||||
RID ci = get_canvas_item();
|
RID ci = get_canvas_item();
|
||||||
Ref<Texture> arrow = Control::get_icon("arrow");
|
Ref<Texture> arrow = Control::get_icon("arrow");
|
||||||
Ref<StyleBox> normal = get_stylebox("normal");
|
Ref<StyleBox> normal = get_stylebox("normal");
|
||||||
|
Color clr = Color(1, 1, 1);
|
||||||
|
if (get_constant("modulate_arrow"))
|
||||||
|
switch (get_draw_mode()) {
|
||||||
|
case DRAW_PRESSED:
|
||||||
|
clr = get_color("font_color_pressed");
|
||||||
|
break;
|
||||||
|
case DRAW_HOVER:
|
||||||
|
clr = get_color("font_color_hover");
|
||||||
|
break;
|
||||||
|
case DRAW_DISABLED:
|
||||||
|
clr = get_color("font_color_disabled");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
clr = get_color("font_color");
|
||||||
|
}
|
||||||
|
|
||||||
Size2 size = get_size();
|
Size2 size = get_size();
|
||||||
|
|
||||||
Point2 ofs(size.width - arrow->get_width() - get_constant("arrow_margin"), int(Math::abs((size.height - arrow->get_height()) / 2)));
|
Point2 ofs(size.width - arrow->get_width() - get_constant("arrow_margin"), int(Math::abs((size.height - arrow->get_height()) / 2)));
|
||||||
arrow->draw(ci, ofs);
|
arrow->draw(ci, ofs, clr);
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -437,3 +437,81 @@ StyleBoxFlat::StyleBoxFlat() {
|
||||||
}
|
}
|
||||||
StyleBoxFlat::~StyleBoxFlat() {
|
StyleBoxFlat::~StyleBoxFlat() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StyleBoxLine::set_color(const Color &p_color) {
|
||||||
|
color = p_color;
|
||||||
|
emit_changed();
|
||||||
|
}
|
||||||
|
Color StyleBoxLine::get_color() const {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StyleBoxLine::set_thickness(int p_thickness) {
|
||||||
|
thickness = p_thickness;
|
||||||
|
emit_changed();
|
||||||
|
}
|
||||||
|
int StyleBoxLine::get_thickness() const {
|
||||||
|
return thickness;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StyleBoxLine::set_vertical(bool p_vertical) {
|
||||||
|
vertical = p_vertical;
|
||||||
|
}
|
||||||
|
bool StyleBoxLine::is_vertical() const {
|
||||||
|
return vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StyleBoxLine::set_grow(float p_grow) {
|
||||||
|
grow = p_grow;
|
||||||
|
emit_changed();
|
||||||
|
}
|
||||||
|
float StyleBoxLine::get_grow() const {
|
||||||
|
return grow;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StyleBoxLine::_bind_methods() {
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("set_color", "color"), &StyleBoxLine::set_color);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_color"), &StyleBoxLine::get_color);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_thickness", "thickness"), &StyleBoxLine::set_thickness);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_thickness"), &StyleBoxLine::get_thickness);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_grow", "grow"), &StyleBoxLine::set_grow);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_grow"), &StyleBoxLine::get_grow);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_vertical", "vertical"), &StyleBoxLine::set_vertical);
|
||||||
|
ClassDB::bind_method(D_METHOD("is_vertical"), &StyleBoxLine::is_vertical);
|
||||||
|
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "thickness", PROPERTY_HINT_RANGE, "0,10"), "set_thickness", "get_thickness");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "vertical"), "set_vertical", "get_vertical");
|
||||||
|
}
|
||||||
|
float StyleBoxLine::get_style_margin(Margin p_margin) const {
|
||||||
|
return thickness;
|
||||||
|
}
|
||||||
|
Size2 StyleBoxLine::get_center_size() const {
|
||||||
|
return Size2();
|
||||||
|
}
|
||||||
|
|
||||||
|
void StyleBoxLine::draw(RID p_canvas_item, const Rect2 &p_rect) const {
|
||||||
|
VisualServer *vs = VisualServer::get_singleton();
|
||||||
|
Rect2i r = p_rect;
|
||||||
|
|
||||||
|
if (vertical) {
|
||||||
|
r.position.y -= grow;
|
||||||
|
r.size.y += grow * 2;
|
||||||
|
r.size.x = thickness;
|
||||||
|
} else {
|
||||||
|
r.position.x -= grow;
|
||||||
|
r.size.x += grow * 2;
|
||||||
|
r.size.y = thickness;
|
||||||
|
}
|
||||||
|
|
||||||
|
vs->canvas_item_add_rect(p_canvas_item, r, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
StyleBoxLine::StyleBoxLine() {
|
||||||
|
grow = 1.0;
|
||||||
|
thickness = 1;
|
||||||
|
color = Color(0.0, 0.0, 0.0);
|
||||||
|
vertical = false;
|
||||||
|
}
|
||||||
|
StyleBoxLine::~StyleBoxLine() {}
|
||||||
|
|
|
@ -164,4 +164,38 @@ public:
|
||||||
~StyleBoxFlat();
|
~StyleBoxFlat();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// just used to draw lines.
|
||||||
|
class StyleBoxLine : public StyleBox {
|
||||||
|
|
||||||
|
GDCLASS(StyleBoxLine, StyleBox);
|
||||||
|
Color color;
|
||||||
|
int thickness;
|
||||||
|
bool vertical;
|
||||||
|
float grow;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual float get_style_margin(Margin p_margin) const;
|
||||||
|
static void _bind_methods();
|
||||||
|
|
||||||
|
public:
|
||||||
|
void set_color(const Color &p_color);
|
||||||
|
Color get_color() const;
|
||||||
|
|
||||||
|
void set_thickness(int p_thickness);
|
||||||
|
int get_thickness() const;
|
||||||
|
|
||||||
|
void set_vertical(bool p_vertical);
|
||||||
|
bool is_vertical() const;
|
||||||
|
|
||||||
|
void set_grow(float p_grow);
|
||||||
|
float get_grow() const;
|
||||||
|
|
||||||
|
virtual Size2 get_center_size() const;
|
||||||
|
|
||||||
|
virtual void draw(RID p_canvas_item, const Rect2 &p_rect) const;
|
||||||
|
|
||||||
|
StyleBoxLine();
|
||||||
|
~StyleBoxLine();
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue