Add rounded corners to the contextual toolbar
- Move contextual toolbar stylebox to the editor theme because it's the same in the 2D and 3D editors
This commit is contained in:
parent
410b6b5f7d
commit
42d1a96904
5 changed files with 18 additions and 37 deletions
|
@ -692,6 +692,21 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
|||
style_canvas_editor_info->set_expand_margin_size_all(4 * EDSCALE);
|
||||
theme->set_stylebox("CanvasItemInfoOverlay", "EditorStyles", style_canvas_editor_info);
|
||||
|
||||
// 2D and 3D contextual toolbar.
|
||||
// Use a custom stylebox to make contextual menu items stand out from the rest.
|
||||
// This helps with editor usability as contextual menu items change when selecting nodes,
|
||||
// even though it may not be immediately obvious at first.
|
||||
Ref<StyleBoxFlat> toolbar_stylebox = memnew(StyleBoxFlat);
|
||||
toolbar_stylebox->set_bg_color(accent_color * Color(1, 1, 1, 0.1));
|
||||
toolbar_stylebox->set_corner_radius(CORNER_TOP_LEFT, corner_radius * EDSCALE);
|
||||
toolbar_stylebox->set_corner_radius(CORNER_TOP_RIGHT, corner_radius * EDSCALE);
|
||||
toolbar_stylebox->set_anti_aliased(false);
|
||||
// Add an underline to the StyleBox, but prevent its minimum vertical size from changing.
|
||||
toolbar_stylebox->set_border_color(accent_color);
|
||||
toolbar_stylebox->set_border_width(SIDE_BOTTOM, Math::round(2 * EDSCALE));
|
||||
toolbar_stylebox->set_default_margin(SIDE_BOTTOM, 0);
|
||||
theme->set_stylebox("ContextualToolbar", "EditorStyles", toolbar_stylebox);
|
||||
|
||||
// Script Editor
|
||||
theme->set_stylebox("ScriptEditorPanel", "EditorStyles", make_empty_stylebox(default_margin_size, 0, default_margin_size, default_margin_size));
|
||||
theme->set_stylebox("ScriptEditor", "EditorStyles", make_empty_stylebox(0, 0, 0, 0));
|
||||
|
|
|
@ -3777,7 +3777,7 @@ void CanvasItemEditor::_update_editor_settings() {
|
|||
key_auto_insert_button->add_theme_color_override("icon_pressed_color", key_auto_color.lerp(Color(1, 0, 0), 0.55));
|
||||
animation_menu->set_icon(get_theme_icon(SNAME("GuiTabMenuHl"), SNAME("EditorIcons")));
|
||||
|
||||
_update_context_menu_stylebox();
|
||||
context_menu_container->add_theme_style_override("panel", get_theme_stylebox(SNAME("ContextualToolbar"), SNAME("EditorStyles")));
|
||||
|
||||
panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/2d_editor_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning")));
|
||||
pan_speed = int(EditorSettings::get_singleton()->get("editors/panning/2d_editor_pan_speed"));
|
||||
|
@ -3913,18 +3913,6 @@ void CanvasItemEditor::edit(CanvasItem *p_canvas_item) {
|
|||
}
|
||||
}
|
||||
|
||||
void CanvasItemEditor::_update_context_menu_stylebox() {
|
||||
// This must be called when the theme changes to follow the new accent color.
|
||||
Ref<StyleBoxFlat> context_menu_stylebox = memnew(StyleBoxFlat);
|
||||
const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("accent_color"), SNAME("Editor"));
|
||||
context_menu_stylebox->set_bg_color(accent_color * Color(1, 1, 1, 0.1));
|
||||
// Add an underline to the StyleBox, but prevent its minimum vertical size from changing.
|
||||
context_menu_stylebox->set_border_color(accent_color);
|
||||
context_menu_stylebox->set_border_width(SIDE_BOTTOM, Math::round(2 * EDSCALE));
|
||||
context_menu_stylebox->set_default_margin(SIDE_BOTTOM, 0);
|
||||
context_menu_container->add_theme_style_override("panel", context_menu_stylebox);
|
||||
}
|
||||
|
||||
void CanvasItemEditor::_update_scrollbars() {
|
||||
updating_scroll = true;
|
||||
|
||||
|
@ -5197,11 +5185,7 @@ CanvasItemEditor::CanvasItemEditor() {
|
|||
context_menu_container = memnew(PanelContainer);
|
||||
hbc_context_menu = memnew(HBoxContainer);
|
||||
context_menu_container->add_child(hbc_context_menu);
|
||||
// Use a custom stylebox to make contextual menu items stand out from the rest.
|
||||
// This helps with editor usability as contextual menu items change when selecting nodes,
|
||||
// even though it may not be immediately obvious at first.
|
||||
hb->add_child(context_menu_container);
|
||||
_update_context_menu_stylebox();
|
||||
|
||||
// Animation controls.
|
||||
animation_hb = memnew(HBoxContainer);
|
||||
|
|
|
@ -492,8 +492,6 @@ private:
|
|||
HSplitContainer *right_panel_split = nullptr;
|
||||
VSplitContainer *bottom_split = nullptr;
|
||||
|
||||
void _update_context_menu_stylebox();
|
||||
|
||||
void _set_owner_for_node_and_children(Node *p_node, Node *p_owner);
|
||||
|
||||
friend class CanvasItemEditorPlugin;
|
||||
|
|
|
@ -6351,18 +6351,6 @@ void fragment() {
|
|||
_generate_selection_boxes();
|
||||
}
|
||||
|
||||
void Node3DEditor::_update_context_menu_stylebox() {
|
||||
// This must be called when the theme changes to follow the new accent color.
|
||||
Ref<StyleBoxFlat> context_menu_stylebox = memnew(StyleBoxFlat);
|
||||
const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("accent_color"), SNAME("Editor"));
|
||||
context_menu_stylebox->set_bg_color(accent_color * Color(1, 1, 1, 0.1));
|
||||
// Add an underline to the StyleBox, but prevent its minimum vertical size from changing.
|
||||
context_menu_stylebox->set_border_color(accent_color);
|
||||
context_menu_stylebox->set_border_width(SIDE_BOTTOM, Math::round(2 * EDSCALE));
|
||||
context_menu_stylebox->set_default_margin(SIDE_BOTTOM, 0);
|
||||
context_menu_container->add_theme_style_override("panel", context_menu_stylebox);
|
||||
}
|
||||
|
||||
void Node3DEditor::_update_gizmos_menu() {
|
||||
gizmos_menu->clear();
|
||||
|
||||
|
@ -6954,6 +6942,8 @@ void Node3DEditor::_update_theme() {
|
|||
sun_color->set_custom_minimum_size(Size2(0, get_theme_constant(SNAME("color_picker_button_height"), SNAME("Editor"))));
|
||||
environ_sky_color->set_custom_minimum_size(Size2(0, get_theme_constant(SNAME("color_picker_button_height"), SNAME("Editor"))));
|
||||
environ_ground_color->set_custom_minimum_size(Size2(0, get_theme_constant(SNAME("color_picker_button_height"), SNAME("Editor"))));
|
||||
|
||||
context_menu_container->add_theme_style_override("panel", get_theme_stylebox(SNAME("ContextualToolbar"), SNAME("EditorStyles")));
|
||||
}
|
||||
|
||||
void Node3DEditor::_notification(int p_what) {
|
||||
|
@ -6992,7 +6982,6 @@ void Node3DEditor::_notification(int p_what) {
|
|||
case NOTIFICATION_THEME_CHANGED: {
|
||||
_update_theme();
|
||||
_update_gizmos_menu_theme();
|
||||
_update_context_menu_stylebox();
|
||||
sun_title->add_theme_font_override("font", get_theme_font(SNAME("title_font"), SNAME("Window")));
|
||||
environ_title->add_theme_font_override("font", get_theme_font(SNAME("title_font"), SNAME("Window")));
|
||||
} break;
|
||||
|
@ -7712,11 +7701,7 @@ Node3DEditor::Node3DEditor() {
|
|||
context_menu_container = memnew(PanelContainer);
|
||||
hbc_context_menu = memnew(HBoxContainer);
|
||||
context_menu_container->add_child(hbc_context_menu);
|
||||
// Use a custom stylebox to make contextual menu items stand out from the rest.
|
||||
// This helps with editor usability as contextual menu items change when selecting nodes,
|
||||
// even though it may not be immediately obvious at first.
|
||||
hbc_menu->add_child(context_menu_container);
|
||||
_update_context_menu_stylebox();
|
||||
|
||||
// Get the view menu popup and have it stay open when a checkable item is selected
|
||||
p = view_menu->get_popup();
|
||||
|
|
|
@ -674,7 +674,6 @@ private:
|
|||
int camera_override_viewport_id;
|
||||
|
||||
void _init_indicators();
|
||||
void _update_context_menu_stylebox();
|
||||
void _update_gizmos_menu();
|
||||
void _update_gizmos_menu_theme();
|
||||
void _init_grid();
|
||||
|
|
Loading…
Reference in a new issue