summaryrefslogtreecommitdiff
path: root/src/editor/editor.h
diff options
context:
space:
mode:
authorkasull <qsullian@gmail.com>2026-03-01 20:18:08 -0500
committerkasull <qsullian@gmail.com>2026-03-01 20:18:08 -0500
commit413ef78504278d37080b9b59a652e4bbd5e2a0fc (patch)
tree67be817cf765725dd2d08c14b2d0ce8c12b20997 /src/editor/editor.h
parent71dd7fcccb45a54d85ae23a95a8a8905ed21fe15 (diff)
editor ui rework
add responsive editor relayout for window resize rework header with back/save, view mode buttons, and 2d view type selector add clipped, scrollable assets and contextual tool panels simplify tool button wiring and repeated layout logic simplify 2d top-down editor internals and shared grid update hooks
Diffstat (limited to 'src/editor/editor.h')
-rw-r--r--src/editor/editor.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/editor/editor.h b/src/editor/editor.h
index cd42a4e..0fee667 100644
--- a/src/editor/editor.h
+++ b/src/editor/editor.h
@@ -8,7 +8,6 @@ const F32 EDITOR_DEFAULT_POLY_SIDES = 6.f;
const F32 EDITOR_DEFAULT_WALL_HEIGHT = 80.f;
const F32 EDITOR_DEFAULT_PLACEMENT_HEIGHT = 0.f;
const I32 EDITOR_POLY_SIDES_MIN = 3;
-const I32 EDITOR_POLY_SIDES_MAX = 32;
enum EditorTools_t {
EDITOR_TOOL_NONE,
@@ -36,6 +35,9 @@ enum EditorSelectType_t {
EDITOR_SELECT_SURFPROPS
};
+struct GAME_EDITOR;
+typedef void( *EDITOR_GRID_DEP_CALLBACK )( GAME_EDITOR* e );
+
struct GAME_EDITOR_TOOL {
U8 type;
@@ -68,6 +70,24 @@ struct GAME_EDITOR {
struct GUI_EDITOR_PROPVIEW* props;
struct GUI_EDITOR_TOOLVIEW* tool;
I32 map_select{};
+
+ I32 props_w{300};
+ I32 props_h{300};
+ I32 view_h{370};
+
+ GUI_VIEW* assets{};
+ GUI_VIEW* status{};
+ I32 assets_scroll{};
+ I32 view_mode{};
+ I32 view2d_type{};
+
+ GUI_LABEL* header_viewtype_label{};
+ GUI_BUTTON* header_back{};
+ GUI_BUTTON* header_save{};
+ GUI_BUTTON* header_mode_2d{};
+ GUI_BUTTON* header_mode_3d{};
+ GUI_BUTTON* header_mode_sim{};
+ GUI_BASE* header_viewtype{};
} gui;
@@ -78,6 +98,12 @@ struct GAME_EDITOR {
F32 spritesize{};
U8 drawbsp{};
+ struct GRID_DEPENDENCY {
+ void* tag{};
+ EDITOR_GRID_DEP_CALLBACK cb{};
+ };
+ LIST<GRID_DEPENDENCY> grid_dependencies{};
+
LIST<GUI_LIST_ENTRY> map_list{};
};
@@ -87,6 +113,9 @@ extern STAT editor_load_map( GAME_EDITOR* e, const char* mapname );
extern STAT editor_save_map( GAME_EDITOR* e );
extern STAT editor_new_map( GAME_EDITOR* e, const char* mapname );
extern STAT editor_close( GAME_EDITOR* e );
+extern void editor_resize( GAME_EDITOR* e, I32 w, I32 h );
+extern void editor_register_grid_dependency( GAME_EDITOR* e, void* tag, EDITOR_GRID_DEP_CALLBACK cb );
+extern void editor_notify_grid_change( GAME_EDITOR* e );
extern LIST<GUI_LIST_ENTRY>* editor_get_map_list( GAME_EDITOR* e );
@@ -136,6 +165,8 @@ struct GUI_EDITOR_PROPVIEW : GUI_VIEW {
struct GUI_EDITOR_TOOLVIEW : GUI_VIEW {
GUI_VIEW* itemview;
U8 wallshape_dropdown_open;
+ I32 scroll;
+ I32 content_h;
};
struct GUI_EDITOR_TEXTUREPICKER : GUI_WINDOW {