@@ -1063,11 +1063,11 @@ static int export_menu_action_callback(action_t *a, void *user)
10631063 return 0 ;
10641064}
10651065
1066- static bool render_menu_item (const char *id, const char *label)
1066+ static bool render_menu_item (const char *id, const char *label, bool enabled )
10671067{
10681068 const action_t *action = action_get (id);
10691069 assert (action);
1070- if (ImGui::MenuItem (label, action->shortcut )) {
1070+ if (ImGui::MenuItem (label, action->shortcut , false , enabled )) {
10711071 action_exec (action, " " );
10721072 return true ;
10731073 }
@@ -1081,9 +1081,10 @@ static void render_menu(void)
10811081
10821082 if (!ImGui::BeginMenuBar ()) return ;
10831083 if (ImGui::BeginMenu (" File" )) {
1084- render_menu_item (" save" , " Save" );
1085- render_menu_item (" save_as" , " Save as" );
1086- render_menu_item (" open" , " Open" );
1084+ render_menu_item (" save" , " Save" ,
1085+ image_get_key (goxel->image ) != goxel->image ->saved_key );
1086+ render_menu_item (" save_as" , " Save as" , true );
1087+ render_menu_item (" open" , " Open" , true );
10871088 if (ImGui::BeginMenu (" Import..." )) {
10881089 if (ImGui::MenuItem (" image plane" )) import_image_plane (goxel);
10891090 actions_iter (import_menu_action_callback, NULL );
@@ -1093,16 +1094,16 @@ static void render_menu(void)
10931094 actions_iter (export_menu_action_callback, NULL );
10941095 ImGui::EndMenu ();
10951096 }
1096- render_menu_item (" quit" , " Quit" );
1097+ render_menu_item (" quit" , " Quit" , true );
10971098 ImGui::EndMenu ();
10981099 }
10991100 if (ImGui::BeginMenu (" Edit" )) {
11001101 if (ImGui::MenuItem (" Clear" , " Delete" ))
11011102 action_exec2 (" layer_clear" , " " );
1102- render_menu_item (" undo" , " Undo" );
1103- render_menu_item (" redo" , " Redo" );
1104- render_menu_item (" copy" , " Copy" );
1105- render_menu_item (" past" , " Past" );
1103+ render_menu_item (" undo" , " Undo" , true );
1104+ render_menu_item (" redo" , " Redo" , true );
1105+ render_menu_item (" copy" , " Copy" , true );
1106+ render_menu_item (" past" , " Past" , true );
11061107 if (ImGui::MenuItem (" Shift Alpha" ))
11071108 gui_open_popup (" Shift Alpha" , 0 , NULL , shift_alpha_popup);
11081109 if (ImGui::MenuItem (" Settings" ))
@@ -1111,11 +1112,11 @@ static void render_menu(void)
11111112 ImGui::EndMenu ();
11121113 }
11131114 if (ImGui::BeginMenu (" View" )) {
1114- render_menu_item (" view_left" , " Left" );
1115- render_menu_item (" view_right" , " Right" );
1116- render_menu_item (" view_front" , " Front" );
1117- render_menu_item (" view_top" , " Top" );
1118- render_menu_item (" view_default" , " Default" );
1115+ render_menu_item (" view_left" , " Left" , true );
1116+ render_menu_item (" view_right" , " Right" , true );
1117+ render_menu_item (" view_front" , " Front" , true );
1118+ render_menu_item (" view_top" , " Top" , true );
1119+ render_menu_item (" view_default" , " Default" , true );
11191120 ImGui::EndMenu ();
11201121 }
11211122 if (ImGui::BeginMenu (" Help" )) {
0 commit comments