1 #ifndef SND_MENU_H 2 #define SND_MENU_H 3 4 #define I_LINES_OR_DOTS "Dots or lines" 5 #define I_CHANNEL_LAYOUT "Channel layout" 6 #define I_ZOOM_CENTERS_ON "Zoom centers on" 7 #define I_AXIS_LAYOUT "Axis layout" 8 9 enum {m_menu, 10 f_menu, f_cascade_menu, 11 f_open_menu, f_open_recent_menu, f_open_recent_cascade_menu, f_close_menu, f_close_all_menu, f_save_menu, f_save_as_menu, f_revert_menu, f_exit_menu, f_new_menu, 12 f_view_menu, f_print_menu, f_mix_menu, f_insert_menu, f_update_menu, f_sep_menu, 13 e_menu, e_cascade_menu, 14 e_cut_menu, e_paste_menu, e_mix_menu, e_play_menu, e_save_as_menu, e_undo_menu, 15 e_redo_menu, e_find_menu, e_env_menu, e_header_menu, e_select_all_menu, e_unselect_menu, 16 e_select_sep_menu, e_edit_sep_menu, 17 h_menu, h_cascade_menu, 18 h_about_snd_menu, h_fft_menu, h_find_menu, h_undo_menu, h_sync_menu, h_controls_menu, 19 h_env_menu, h_marks_menu, h_sound_files_menu, h_init_file_menu, 20 h_mix_menu, h_keys_menu, 21 h_play_menu, h_save_menu, h_resample_menu, h_filter_menu, h_insert_menu, 22 h_delete_menu, h_reverb_menu, h_debug_menu, h_region_menu, h_selection_menu, h_colors_menu, 23 o_menu, o_cascade_menu, 24 o_transform_menu, o_controls_menu, 25 o_save_state_menu, o_sep_menu, o_preferences_menu, 26 v_menu, v_cascade_menu, 27 v_graph_style_menu, v_graph_style_cascade_menu, 28 v_lines_menu, v_dots_menu, v_filled_menu, v_dots_and_lines_menu, v_lollipops_menu, 29 v_zero_menu, v_cursor_menu, v_inset_menu, v_controls_menu, v_listener_menu, 30 v_region_menu, 31 v_combine_menu, v_combine_cascade_menu, 32 v_combine_separate_menu, v_combine_combined_menu, v_combine_superimposed_menu, 33 v_color_orientation_menu, 34 v_files_menu, v_mix_dialog_menu, 35 v_x_axis_menu, v_x_axis_cascade_menu, 36 v_x_axis_seconds_menu, v_x_axis_samples_menu, v_x_axis_percentage_menu, v_x_axis_beats_menu, v_x_axis_measures_menu, v_x_axis_clock_menu, 37 v_axes_menu, v_axes_cascade_menu, 38 v_no_axes_menu, v_all_axes_menu, v_just_x_axis_menu, v_all_axes_unlabelled_menu, v_just_x_axis_unlabelled_menu, v_bare_x_axis_menu, 39 v_focus_style_menu, v_focus_cascade_menu, 40 v_focus_right_menu, v_focus_left_menu, v_focus_middle_menu, v_focus_active_menu, 41 v_grid_menu, 42 v_sep2_menu, 43 NUM_MENU_WIDGETS 44 }; 45 46 #define main_menu (ss->mw[m_menu]) 47 48 #define file_menu (ss->mw[f_menu]) 49 #define file_cascade_menu (ss->mw[f_cascade_menu]) 50 #define file_open_menu (ss->mw[f_open_menu]) 51 #define file_open_recent_menu (ss->mw[f_open_recent_menu]) 52 #define file_open_recent_cascade_menu (ss->mw[f_open_recent_cascade_menu]) 53 #define file_close_menu (ss->mw[f_close_menu]) 54 #define file_close_all_menu (ss->mw[f_close_all_menu]) 55 #define file_save_menu (ss->mw[f_save_menu]) 56 #define file_save_as_menu (ss->mw[f_save_as_menu]) 57 #define file_revert_menu (ss->mw[f_revert_menu]) 58 #define file_exit_menu (ss->mw[f_exit_menu]) 59 #define file_new_menu (ss->mw[f_new_menu]) 60 #define file_view_menu (ss->mw[f_view_menu]) 61 #define file_print_menu (ss->mw[f_print_menu]) 62 #define file_mix_menu (ss->mw[f_mix_menu]) 63 #define file_insert_menu (ss->mw[f_insert_menu]) 64 #define file_update_menu (ss->mw[f_update_menu]) 65 #define file_sep_menu (ss->mw[f_sep_menu]) 66 67 #define edit_menu (ss->mw[e_menu]) 68 #define edit_cascade_menu (ss->mw[e_cascade_menu]) 69 #define edit_cut_menu (ss->mw[e_cut_menu]) 70 #define edit_paste_menu (ss->mw[e_paste_menu]) 71 #define edit_mix_menu (ss->mw[e_mix_menu]) 72 #define edit_play_menu (ss->mw[e_play_menu]) 73 #define edit_save_as_menu (ss->mw[e_save_as_menu]) 74 #define edit_undo_menu (ss->mw[e_undo_menu]) 75 #define edit_redo_menu (ss->mw[e_redo_menu]) 76 #define edit_find_menu (ss->mw[e_find_menu]) 77 #define edit_env_menu (ss->mw[e_env_menu]) 78 #define edit_header_menu (ss->mw[e_header_menu]) 79 #define edit_select_all_menu (ss->mw[e_select_all_menu]) 80 #define edit_unselect_menu (ss->mw[e_unselect_menu]) 81 #define edit_select_sep_menu (ss->mw[e_select_sep_menu]) 82 #define edit_edit_sep_menu (ss->mw[e_edit_sep_menu]) 83 84 #define help_menu (ss->mw[h_menu]) 85 #define help_cascade_menu (ss->mw[h_cascade_menu]) 86 #define help_about_snd_menu (ss->mw[h_about_snd_menu]) 87 #define help_fft_menu (ss->mw[h_fft_menu]) 88 #define help_find_menu (ss->mw[h_find_menu]) 89 #define help_undo_menu (ss->mw[h_undo_menu]) 90 #define help_sync_menu (ss->mw[h_sync_menu]) 91 #define help_controls_menu (ss->mw[h_controls_menu]) 92 #define help_env_menu (ss->mw[h_env_menu]) 93 #define help_marks_menu (ss->mw[h_marks_menu]) 94 #define help_sound_files_menu (ss->mw[h_sound_files_menu]) 95 #define help_init_file_menu (ss->mw[h_init_file_menu]) 96 #define help_mix_menu (ss->mw[h_mix_menu]) 97 #define help_keys_menu (ss->mw[h_keys_menu]) 98 #define help_play_menu (ss->mw[h_play_menu]) 99 #define help_save_menu (ss->mw[h_save_menu]) 100 #define help_resample_menu (ss->mw[h_resample_menu]) 101 #define help_filter_menu (ss->mw[h_filter_menu]) 102 #define help_insert_menu (ss->mw[h_insert_menu]) 103 #define help_delete_menu (ss->mw[h_delete_menu]) 104 #define help_reverb_menu (ss->mw[h_reverb_menu]) 105 #define help_debug_menu (ss->mw[h_debug_menu]) 106 #define help_region_menu (ss->mw[h_region_menu]) 107 #define help_selection_menu (ss->mw[h_selection_menu]) 108 #define help_colors_menu (ss->mw[h_colors_menu]) 109 110 #define options_menu (ss->mw[o_menu]) 111 #define options_cascade_menu (ss->mw[o_cascade_menu]) 112 #define options_transform_menu (ss->mw[o_transform_menu]) 113 #define options_save_state_menu (ss->mw[o_save_state_menu]) 114 #define options_sep_menu (ss->mw[o_sep_menu]) 115 #define options_preferences_menu (ss->mw[o_preferences_menu]) 116 #define options_controls_menu (ss->mw[o_controls_menu]) 117 118 #define view_menu (ss->mw[v_menu]) 119 #define view_cascade_menu (ss->mw[v_cascade_menu]) 120 #define view_graph_style_menu (ss->mw[v_graph_style_menu]) 121 #define view_graph_style_cascade_menu (ss->mw[v_graph_style_cascade_menu]) 122 #define view_lines_menu (ss->mw[v_lines_menu]) 123 #define view_dots_menu (ss->mw[v_dots_menu]) 124 #define view_filled_menu (ss->mw[v_filled_menu]) 125 #define view_dots_and_lines_menu (ss->mw[v_dots_and_lines_menu]) 126 #define view_lollipops_menu (ss->mw[v_lollipops_menu]) 127 #define view_zero_menu (ss->mw[v_zero_menu]) 128 #define view_cursor_menu (ss->mw[v_cursor_menu]) 129 #define view_inset_menu (ss->mw[v_inset_menu]) 130 #define view_controls_menu (ss->mw[v_controls_menu]) 131 #define view_listener_menu (ss->mw[v_listener_menu]) 132 #define view_region_menu (ss->mw[v_region_menu]) 133 #define view_combine_menu (ss->mw[v_combine_menu]) 134 #define view_combine_cascade_menu (ss->mw[v_combine_cascade_menu]) 135 #define view_combine_separate_menu (ss->mw[v_combine_separate_menu]) 136 #define view_combine_combined_menu (ss->mw[v_combine_combined_menu]) 137 #define view_combine_superimposed_menu (ss->mw[v_combine_superimposed_menu]) 138 #define view_color_orientation_menu (ss->mw[v_color_orientation_menu]) 139 #define view_files_menu (ss->mw[v_files_menu]) 140 #define view_mix_dialog_menu (ss->mw[v_mix_dialog_menu]) 141 #define view_x_axis_menu (ss->mw[v_x_axis_menu]) 142 #define view_x_axis_cascade_menu (ss->mw[v_x_axis_cascade_menu]) 143 #define view_x_axis_seconds_menu (ss->mw[v_x_axis_seconds_menu]) 144 #define view_x_axis_clock_menu (ss->mw[v_x_axis_clock_menu]) 145 #define view_x_axis_samples_menu (ss->mw[v_x_axis_samples_menu]) 146 #define view_x_axis_percentage_menu (ss->mw[v_x_axis_percentage_menu]) 147 #define view_x_axis_beats_menu (ss->mw[v_x_axis_beats_menu]) 148 #define view_x_axis_measures_menu (ss->mw[v_x_axis_measures_menu]) 149 #define view_axes_menu (ss->mw[v_axes_menu]) 150 #define view_axes_cascade_menu (ss->mw[v_axes_cascade_menu]) 151 #define view_no_axes_menu (ss->mw[v_no_axes_menu]) 152 #define view_all_axes_menu (ss->mw[v_all_axes_menu]) 153 #define view_just_x_axis_menu (ss->mw[v_just_x_axis_menu]) 154 #define view_all_axes_unlabelled_menu (ss->mw[v_all_axes_unlabelled_menu]) 155 #define view_just_x_axis_unlabelled_menu (ss->mw[v_just_x_axis_unlabelled_menu]) 156 #define view_bare_x_axis_menu (ss->mw[v_bare_x_axis_menu]) 157 #define view_sep2_menu (ss->mw[v_sep2_menu]) 158 #define view_focus_style_menu (ss->mw[v_focus_style_menu]) 159 #define view_focus_cascade_menu (ss->mw[v_focus_cascade_menu]) 160 #define view_focus_right_menu (ss->mw[v_focus_right_menu]) 161 #define view_focus_left_menu (ss->mw[v_focus_left_menu]) 162 #define view_focus_middle_menu (ss->mw[v_focus_middle_menu]) 163 #define view_focus_active_menu (ss->mw[v_focus_active_menu]) 164 #define view_grid_menu (ss->mw[v_grid_menu]) 165 166 void edit_menu_update(void); 167 void view_menu_update(void); 168 void file_menu_update(void); 169 void update_file_from_menu(void); 170 void revert_file_from_menu(void); 171 void save_state_from_menu(void); 172 void unprotect_callback(int slot); 173 174 int g_add_to_main_menu(const char *label, int slot); 175 widget_t g_add_to_menu(int which_menu, const char *label, int callb, int position); 176 int g_remove_from_menu(int which_menu, const char *label); 177 void g_menu_callback(int callb); 178 179 #endif 180