summaryrefslogtreecommitdiff
path: root/src/editor/editor_menubar.cpp
diff options
context:
space:
mode:
authoraura <nw@moneybot.cc>2026-08-11 19:10:16 +0200
committeraura <nw@moneybot.cc>2026-08-11 19:10:16 +0200
commit17c07b5f884453130d8be3a6d91d730d80d4f8ae (patch)
tree6ec11e5e5f7f0be9ed899196c2897aa76a907de2 /src/editor/editor_menubar.cpp
parent1aa17de9188790f049c0edc4281597cb4e535627 (diff)
parent0a9d7ce6a0764a87766ebb23cc1ece4c26c8c678 (diff)
Merge remote-tracking branch 'origin/day'
Diffstat (limited to 'src/editor/editor_menubar.cpp')
-rw-r--r--src/editor/editor_menubar.cpp58
1 files changed, 34 insertions, 24 deletions
diff --git a/src/editor/editor_menubar.cpp b/src/editor/editor_menubar.cpp
index cef2650..0a6f661 100644
--- a/src/editor/editor_menubar.cpp
+++ b/src/editor/editor_menubar.cpp
@@ -1,3 +1,4 @@
+#include "editor.h"
#include "editor_gui_internal.h"
U8 editor_menu_hover_mask_active = 0;
@@ -36,7 +37,15 @@ void editor_apply_view_mode( GAME_EDITOR* e ) {
}
void editor_toolbar_close_menu() {
- editor_hide_contextmenu();
+ if( !editor )
+ return;
+
+ GUI_EDITOR_TOOLBAR* tb = (GUI_EDITOR_TOOLBAR*)editor->gui.header_toolbar;
+
+ if( tb )
+ tb->active_root = -1;
+
+ gui_contextmenu_hide( editor->gui.contextmenu );
}
void editor_set_view_mode( I32 mode ) {
@@ -89,11 +98,11 @@ void editor_contextmenu_set_tool_cb( void* data ) {
editor_settool( (U8)(I64)data );
}
-U8 editor_contextmenu_undo_enabled( EDITOR_CONTEXTMENU_ITEM* ) {
+U8 editor_contextmenu_undo_enabled( GUI_CONTEXTMENU_ITEM* ) {
return editor && editor->undo_actions.size > 0;
}
-U8 editor_contextmenu_redo_enabled( EDITOR_CONTEXTMENU_ITEM* ) {
+U8 editor_contextmenu_redo_enabled( GUI_CONTEXTMENU_ITEM* ) {
return editor && editor->redo_actions.size > 0;
}
@@ -104,31 +113,31 @@ void editor_toolbar_init_entries( GUI_EDITOR_TOOLBAR* bar ) {
bar->entries.clear();
bar->entries.resize( 4 );
- editor_contextmenu_set_item( &bar->entries[0], "file" );
+ gui_contextmenu_set_item( &bar->entries[0], "file" );
bar->entries[0].items.resize( 1 );
- editor_contextmenu_set_item( &bar->entries[0].items[0], "save", editor_contextmenu_save_cb );
+ gui_contextmenu_set_item( &bar->entries[0].items[0], "save", editor_contextmenu_save_cb );
- editor_contextmenu_set_item( &bar->entries[1], "edit" );
+ gui_contextmenu_set_item( &bar->entries[1], "edit" );
bar->entries[1].items.resize( 2 );
- editor_contextmenu_set_item( &bar->entries[1].items[0], "undo", editor_contextmenu_undo_cb, 0, editor_contextmenu_undo_enabled );
- editor_contextmenu_set_item( &bar->entries[1].items[1], "redo", editor_contextmenu_redo_cb, 0, editor_contextmenu_redo_enabled );
+ gui_contextmenu_set_item( &bar->entries[1].items[0], "undo", editor_contextmenu_undo_cb, 0, editor_contextmenu_undo_enabled );
+ gui_contextmenu_set_item( &bar->entries[1].items[1], "redo", editor_contextmenu_redo_cb, 0, editor_contextmenu_redo_enabled );
- editor_contextmenu_set_item( &bar->entries[2], "view" );
+ gui_contextmenu_set_item( &bar->entries[2], "view" );
bar->entries[2].items.resize( 3 );
- editor_contextmenu_set_item( &bar->entries[2].items[0], "2d view", editor_contextmenu_set_view_mode_cb, (void*)(I64)EDITOR_VIEWMODE_2D );
- editor_contextmenu_set_item( &bar->entries[2].items[1], "3d view", editor_contextmenu_set_view_mode_cb, (void*)(I64)EDITOR_VIEWMODE_3D );
- editor_contextmenu_set_item( &bar->entries[2].items[2], "simulation", editor_contextmenu_set_view_mode_cb, (void*)(I64)EDITOR_VIEWMODE_SIM );
+ gui_contextmenu_set_item( &bar->entries[2].items[0], "2d view", editor_contextmenu_set_view_mode_cb, (void*)(I64)EDITOR_VIEWMODE_2D );
+ gui_contextmenu_set_item( &bar->entries[2].items[1], "3d view", editor_contextmenu_set_view_mode_cb, (void*)(I64)EDITOR_VIEWMODE_3D );
+ gui_contextmenu_set_item( &bar->entries[2].items[2], "simulation", editor_contextmenu_set_view_mode_cb, (void*)(I64)EDITOR_VIEWMODE_SIM );
- editor_contextmenu_set_item( &bar->entries[3], "tools" );
+ gui_contextmenu_set_item( &bar->entries[3], "tools" );
bar->entries[3].items.resize( 5 );
- editor_contextmenu_set_item( &bar->entries[3].items[0], "none", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_NONE );
- editor_contextmenu_set_item( &bar->entries[3].items[1], "select", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_SELECT );
- editor_contextmenu_set_item( &bar->entries[3].items[2], "wall", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_WALL );
- editor_contextmenu_set_item( &bar->entries[3].items[3], "poly", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_POLY );
- editor_contextmenu_set_item( &bar->entries[3].items[4], "object", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_OBJECT );
+ gui_contextmenu_set_item( &bar->entries[3].items[0], "none", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_NONE );
+ gui_contextmenu_set_item( &bar->entries[3].items[1], "select", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_SELECT );
+ gui_contextmenu_set_item( &bar->entries[3].items[2], "wall", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_WALL );
+ gui_contextmenu_set_item( &bar->entries[3].items[3], "poly", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_POLY );
+ gui_contextmenu_set_item( &bar->entries[3].items[4], "object", editor_contextmenu_set_tool_cb, (void*)(I64)EDITOR_TOOL_OBJECT );
}
-I32 editor_toolbar_root_width( const EDITOR_CONTEXTMENU_ITEM* entry ) {
+I32 editor_toolbar_root_width( const GUI_CONTEXTMENU_ITEM* entry ) {
if( !entry )
return 44;
@@ -196,7 +205,7 @@ void gui_editor_toolbar_draw_fn( void* ptr ) {
U8 hovered = hit.root == i;
U8 active = bar->held && bar->held_root == i && m1;
- U8 open = editor_contextmenu_open() && bar->active_root == i;
+ U8 open = gui_contextmenu_open( editor->gui.contextmenu ) && bar->active_root == i;
CLR fill = ui_clr.bg_sec;
if( active )
@@ -228,13 +237,14 @@ void gui_editor_toolbar_input_fn( void* ptr ) {
}
if( bar->held && bar->held_root == hit.root && hit.root >= 0 ) {
- if( editor_contextmenu_open() && bar->active_root == hit.root ) {
- editor_hide_contextmenu();
+ if( gui_contextmenu_open( editor->gui.contextmenu ) && bar->active_root == hit.root ) {
+ editor_toolbar_close_menu();
} else {
I32 rx = 0;
editor_toolbar_root_rect( bar, hit.root, &rx, 0, 0, 0 );
- editor_show_contextmenu( rx, gui_rely( bar ) + bar->h, &bar->entries[hit.root].items );
- bar->active_root = hit.root;
+ LIST<GUI_CONTEXTMENU_ITEM>* items = &bar->entries[hit.root].items;
+ gui_show_contextmenu( rx, gui_rely( bar ) + bar->h, items, editor->wnd, 0, items->size, &editor->gui.contextmenu );
+ bar->active_root = editor->gui.contextmenu ? hit.root : -1;
}
}