From 7c8b5072d8441aa6a7da9bd7560c47ba8c41270b Mon Sep 17 00:00:00 2001 From: kasull Date: Thu, 5 Mar 2026 11:38:03 -0500 Subject: split UI components and make menubar data-driven replace monolithic gui.cpp with focused editor UI component files shared editor_gui_internal.h for layout constants and cross-component helpers modular menubar rendering/input --- src/editor/editor_gui_internal.h | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/editor/editor_gui_internal.h (limited to 'src/editor/editor_gui_internal.h') diff --git a/src/editor/editor_gui_internal.h b/src/editor/editor_gui_internal.h new file mode 100644 index 0000000..ff9b140 --- /dev/null +++ b/src/editor/editor_gui_internal.h @@ -0,0 +1,55 @@ +#pragma once + +#include "editor.h" +#include "../util.h" + +constexpr I32 EDITOR_LAYOUT_MARGIN = 10; +constexpr I32 EDITOR_LAYOUT_TITLE_OFFSET = 15; +constexpr I32 EDITOR_LAYOUT_MENU_Y = 1; +constexpr I32 EDITOR_LAYOUT_MENU_H = 22; +constexpr I32 EDITOR_LAYOUT_NAV_Y = EDITOR_LAYOUT_MENU_Y + EDITOR_LAYOUT_MENU_H + 4; +constexpr I32 EDITOR_LAYOUT_CONTENT_Y = EDITOR_LAYOUT_NAV_Y + 28; +constexpr I32 EDITOR_LAYOUT_COLUMN_GAP = 10; +constexpr I32 EDITOR_LAYOUT_VIEW_TOOL_GAP = 17; +constexpr I32 EDITOR_LAYOUT_TOOL_BTN_TOP_GAP = 3; +constexpr I32 EDITOR_LAYOUT_TOOL_PANEL_GAP = 5; +constexpr I32 EDITOR_LAYOUT_LEFT_BOX_GAP = 10; +constexpr I32 EDITOR_LAYOUT_STATUS_H = 22; +constexpr I32 EDITOR_LAYOUT_STATUS_GAP = 6; +constexpr I32 EDITOR_LAYOUT_TOOL_PANEL_W = 300; +constexpr I32 EDITOR_LAYOUT_TOOL_PANEL_H = 150; +constexpr I32 EDITOR_LAYOUT_PROPS_DEFAULT_W = 300; +constexpr I32 EDITOR_LAYOUT_PROPS_DEFAULT_H = 300; +constexpr I32 EDITOR_LAYOUT_VIEW_DEFAULT_H = 370; +constexpr I32 EDITOR_LAYOUT_PROPS_MIN_W = 200; +constexpr I32 EDITOR_LAYOUT_PROPS_MIN_H = 120; +constexpr I32 EDITOR_LAYOUT_ASSETS_MIN_H = 120; +constexpr I32 EDITOR_LAYOUT_VIEW_MIN_H = 140; +constexpr I32 EDITOR_LAYOUT_RIGHT_MIN_W = 260; + +constexpr I32 EDITOR_TOOLBAR_DROPDOWN_W = 120; + +extern U8 editor_menu_hover_mask_active; +extern I32 editor_menu_hover_real_x; +extern I32 editor_menu_hover_real_y; + +extern GUI_EDITOR_VIEWTYPE_SEGMENT* gui_editor_viewtype_segment( I32 x, I32 y, I32 w, I32 h, const char* name ); +extern GUI_EDITOR_TOOLBAR* gui_editor_toolbar( I32 x, I32 y, I32 w, I32 h, const char* name ); +extern GUI_EDITOR_INFOBOX* gui_editor_infobox( I32 x, I32 y, I32 w, I32 h, U8 type, const char* name ); + +extern void editor_apply_view_mode( GAME_EDITOR* e ); +extern void editor_toolbar_close_menu(); +extern void editor_create_header_controls( GAME_EDITOR* e ); +extern void editor_raise_header_toolbar( GAME_EDITOR* e ); + +extern void editor_set_bounds( GUI_BASE* node, I32 x, I32 y, I32 w, I32 h ); +extern void editor_resize_base_view( GUI_EDITORWINDOW* wnd ); +extern void editor_layout_start_menu( GAME_EDITOR* e ); +extern void editor_layout_map_view( GAME_EDITOR* e ); + +extern void editor_create_properties_column( GAME_EDITOR* e ); +extern void editor_create_auxiliary_panels( GAME_EDITOR* e ); +extern void editor_update_toolview( GAME_EDITOR* e ); +extern void editor_create_toolview_column( GAME_EDITOR* e ); +extern void editor_create_game_view_column( GAME_EDITOR* e ); +extern void settool( U8 t ); -- cgit v1.2.3