00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "xsmmath.h"
00030
00031
00032
00033 static GnomeUIInfo f_scan_import_submenu[] = {
00034 GNOMEUIINFO_END
00035 };
00036
00037 static GnomeUIInfo f_scan_export_submenu[] = {
00038 GNOMEUIINFO_END
00039 };
00040
00041 static GnomeUIInfo file_menu[] = {
00042 GNOMEUIINFO_ITEM_STOCK(N_("_Open ..."), N_("Open an existing scan"),
00043 (gpointer) App::file_open_callback, GNOME_STOCK_MENU_OPEN),
00044 GNOMEUIINFO_ITEM_STOCK(N_("Open to free _Channel ..."), N_("Open an existing scan and put it in a free Channel"),
00045 (gpointer) App::file_open_in_new_window_callback, GNOME_STOCK_MENU_OPEN),
00046 GNOMEUIINFO_ITEM_STOCK(N_("_Browse ..."), N_("Open scans with browser"),
00047 (gpointer) App::file_browse_callback, GNOME_STOCK_MENU_OPEN),
00048 GNOMEUIINFO_ITEM_STOCK(N_("_Save"), N_("Save scans with automatically generated names"),
00049 (gpointer) App::file_save_callback, GNOME_STOCK_MENU_SAVE),
00050 GNOMEUIINFO_ITEM_STOCK(N_("Save _as..."), N_("Save the active scan with a new name"),
00051 (gpointer) App::file_save_as_callback, GNOME_STOCK_MENU_SAVE_AS),
00052
00053 GNOMEUIINFO_SEPARATOR,
00054 GNOMEUIINFO_SUBTREE (N_("_Import"), f_scan_import_submenu),
00055 GNOMEUIINFO_SUBTREE (N_("_Export"), f_scan_export_submenu),
00056 GNOMEUIINFO_SEPARATOR,
00057
00058 GNOMEUIINFO_MENU_PRINT_ITEM( (gpointer) App::file_print_callback, NULL),
00059 GNOMEUIINFO_SEPARATOR,
00060 GNOMEUIINFO_ITEM_STOCK(N_("_Close"), N_("Close aktive scan"),
00061 (gpointer) App::file_close_callback, GNOME_STOCK_MENU_CLOSE),
00062 GNOMEUIINFO_ITEM_STOCK(N_("E_xit"), N_("Exit the GXSM"),
00063 (gpointer) App::file_exit_callback, GNOME_STOCK_MENU_QUIT),
00064 GNOMEUIINFO_END
00065 };
00066
00067
00068
00069 static GnomeUIInfo edit_menu[] = {
00070 GNOMEUIINFO_ITEM_STOCK(N_("Cro_p"), N_("Crop the selection to new scan"),
00071 (gpointer) App::edit_crop_callback, GNOME_STOCK_MENU_CUT),
00072 GNOMEUIINFO_ITEM_STOCK(N_("_Copy"), N_("Copy the scan to new channel"),
00073 (gpointer) App::edit_copy_callback, GNOME_STOCK_MENU_COPY),
00074 GNOMEUIINFO_END
00075 };
00076
00077
00078
00079 #define GXSM_MENU_F_D_S(L,T,CB,D,PX) { \
00080 GNOME_APP_UI_ITEM, \
00081 N_(L), N_(T), (gpointer) CB, (gpointer) D, \
00082 NULL, GNOME_APP_PIXMAP_STOCK, PX, \
00083 0, GDK_CONTROL_MASK, NULL }
00084
00085 static GnomeUIInfo action_menu[] = {
00086 GXSM_MENU_F_D_S(N_("_Start Scan"), N_("Start scanning the Surface"),
00087 App::action_toolbar_callback, "Toolbar_Scan_Start",
00088 GNOME_STOCK_MENU_EXEC),
00089 GXSM_MENU_F_D_S(N_("Start _Movie"), N_("Start Scanning the Surface periodically"),
00090 App::action_toolbar_callback, "Toolbar_Scan_Movie",
00091 GNOME_STOCK_MENU_TIMER),
00092 GXSM_MENU_F_D_S(N_("Sto_p Scan"), N_("Stop a running Scan"),
00093 App::action_toolbar_callback, "Toolbar_Scan_Stop",
00094 GNOME_STOCK_MENU_STOP),
00095 GXSM_MENU_F_D_S(N_("_Add Scan"), N_("Start a Scan in Data-Add-Mode"),
00096 App::action_toolbar_callback, "Toolbar_Scan_Start_Add",
00097 GNOME_STOCK_MENU_EXEC),
00098 GXSM_MENU_F_D_S(N_("Add Movie"), N_("Start a Movie in Data-Add-Mode"),
00099 App::action_toolbar_callback, "Toolbar_Scan_Movie_Add",
00100 GNOME_STOCK_MENU_EXEC),
00101 GNOMEUIINFO_END
00102 };
00103
00104
00105
00106 static GnomeUIInfo view_menu[] = {
00107 GNOMEUIINFO_ITEM_STOCK(N_("Auto _Display"), N_("Set Display Values from Region Min/Max"),
00108 (gpointer) App::view_autodisp_callback, GNOME_STOCK_MENU_REFRESH),
00109 GNOMEUIINFO_TOGGLEITEM(N_("Autozoom"), N_("enable/disable autozoom/quench"),
00110 (gpointer) App::view_autozoom_callback, NULL),
00111 GNOMEUIINFO_TOGGLEITEM(N_("_Tolerant Auto Display"), N_("enable/disable intelligent auto scaling"),
00112 (gpointer) App::view_tolerant_callback, NULL),
00113 GNOMEUIINFO_TOGGLEITEM(N_("_Palette"), N_("Enable Color Palette Mode"),
00114 (gpointer) App::view_palette_callback, NULL),
00115 GNOMEUIINFO_SEPARATOR,
00116 GNOMEUIINFO_ITEM_STOCK(N_("Zoom _in"), N_("Zoom into rectangular Area"),
00117 (gpointer) App::view_zoom_in_callback, GTK_STOCK_ZOOM_IN),
00118 GNOMEUIINFO_ITEM_STOCK(N_("Zoom _out"), N_("Zoom out - put whole image into rectangular Area"),
00119 (gpointer) App::view_zoom_out_callback, GTK_STOCK_ZOOM_OUT),
00120 GNOMEUIINFO_END
00121 };
00122
00123
00124
00125
00126
00127 #define GXSM_FILTER_ENTRY(L,T,CB,MF) { \
00128 GNOME_APP_UI_ITEM, \
00129 L, T, (gpointer) CB, (gpointer) MF, \
00130 NULL, GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BLANK, \
00131 0, GDK_CONTROL_MASK, NULL }
00132
00133 #define GXSM_SLD_ENTRY(L,T,CB,ID) { \
00134 GNOME_APP_UI_ITEM, \
00135 L, T, (gpointer) CB, (gpointer) ID, \
00136 NULL, GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BLANK, \
00137 0, GDK_CONTROL_MASK, NULL }
00138
00139 #ifdef GXSM_WITH_TOOLSBARS_DISABLED
00140 static GnomeUIInfo math_toolbars_menu[] = {
00141 GNOMEUIINFO_TOGGLEITEM(N_("Background Tools"), N_("Toolbar with methods for background elemination"),
00142 (gpointer) App::math_bg_callback, NULL),
00143 GNOMEUIINFO_TOGGLEITEM(N_("Filter 1D Tools"), N_("Toolbar with 1D Filters for Line optimization"),
00144 (gpointer) App::math_f1d_callback, NULL),
00145 GNOMEUIINFO_TOGGLEITEM(N_("Filter 2D Tools"), N_("Toolbar with 2D Filters, general purpose eg. FT, etc."),
00146 (gpointer) App::math_f2d_callback, NULL),
00147 GNOMEUIINFO_END
00148 };
00149 #endif
00150
00151 static GnomeUIInfo math_bg_menu[] = {
00152 GNOMEUIINFO_SEPARATOR,
00153 GXSM_FILTER_ENTRY(N_("Line Regress"),N_("do linear line regression"), (gpointer) App::math_onearg_callback, BgLin1DScan),
00154 GXSM_FILTER_ENTRY(N_("E Regression"),N_("plane regression (need rect. area)"), (gpointer) App::math_onearg_callback, BgERegress),
00155 GXSM_FILTER_ENTRY(N_("Paraboloid"),N_("do 2D parabolic regression"), (gpointer) App::math_onearg_callback, BgParabolRegress),
00156
00157
00158 GNOMEUIINFO_END
00159 };
00160
00161 static GnomeUIInfo math_f1d_menu[] = {
00162 GXSM_FILTER_ENTRY(N_("Despike"),N_("despike lines"), (gpointer) App::math_onearg_callback, F1D_Despike),
00163 GNOMEUIINFO_SEPARATOR,
00164 GXSM_FILTER_ENTRY(N_("Power Spectrum"),N_("calc power spectrum for each line"),
00165 (gpointer) App::math_onearg_callback, F1D_LogPowerSpec),
00166 GXSM_FILTER_ENTRY(N_("FT Window"),N_("do inverse FT of by X masked FT of scan"),
00167 (gpointer) App::math_twoarg_callback, F1D_FT_Window),
00168 GXSM_FILTER_ENTRY(N_("FT Gaus Stop"),N_("IFT of 1D-Gaus (X) masked stop band of FT from scan"),
00169 (gpointer) App::math_twoarg_callback, F1D_FT_GaussStop),
00170 GXSM_FILTER_ENTRY(N_("FT Gaus Pass"),N_("IFT of 1D-Gaus (X) masked pass band of FT from scan"),
00171 (gpointer) App::math_twoarg_callback, F1D_FT_GaussPass),
00172
00173
00174
00175 GNOMEUIINFO_END
00176 };
00177
00178 static GnomeUIInfo math_f2d_menu[] = {
00179 GXSM_FILTER_ENTRY(N_("Despike"),N_("do 2D despike"), (gpointer) App::math_onearg_callback, F2D_Despike),
00180 GXSM_FILTER_ENTRY(N_("Remove Rect"),N_("Remove 'bad' area"), (gpointer) App::math_onearg_callback, F2D_RemoveRect),
00181 GXSM_FILTER_ENTRY(N_("Line Shifts"),N_("Line Shifts correction"), (gpointer) App::math_onearg_callback, F2D_LineShifts),
00182 GXSM_FILTER_ENTRY(N_("Line Interpol"),N_("interpolate marked line"), (gpointer) App::math_onearg_callback, F2D_LineInterpol),
00183
00184 GNOMEUIINFO_SEPARATOR,
00185 GXSM_FILTER_ENTRY(N_("Auto Correlation"),N_("do auto correlation"), (gpointer) App::math_onearg_callback, F2D_AutoCorr),
00186 GXSM_FILTER_ENTRY(N_("Power Spectrum"),N_("calc 2D power spektrum"),
00187 (gpointer) App::math_onearg_callback, F2D_LogPowerSpec),
00188 GNOMEUIINFO_SEPARATOR,
00189 GXSM_FILTER_ENTRY(N_("IFT(X*(FT()))"),N_("do inverse FT of by X masked FT of scan"),
00190 (gpointer) App::math_twoarg_callback, F2D_iftXft),
00191 GXSM_FILTER_ENTRY(N_("FT Gaus Stop"),N_("IFT of 2D-Gaus (X) masked stop band of FT from scan"),
00192 (gpointer) App::math_twoarg_callback, F2D_FT_GaussStop),
00193 GXSM_FILTER_ENTRY(N_("FT Gaus Pass"),N_("IFT of 2D-Gaus (X) masked pass band of FT from scan"),
00194 (gpointer) App::math_twoarg_callback, F2D_FT_GaussPass),
00195
00196 GNOMEUIINFO_END
00197 };
00198
00199 static GnomeUIInfo math_cv_menu[] = {
00200 GNOMEUIINFO_END
00201 };
00202
00203 static GnomeUIInfo math_ar_menu[] = {
00204 GNOMEUIINFO_END
00205 };
00206
00207 static GnomeUIInfo math_tr_menu[] = {
00208 GNOMEUIINFO_END
00209 };
00210
00211 static GnomeUIInfo math_st_menu[] = {
00212 GNOMEUIINFO_END
00213 };
00214
00215 static GnomeUIInfo math_misc_menu[] = {
00216 GNOMEUIINFO_END
00217 };
00218
00219 static GnomeUIInfo math_probe_menu[] = {
00220 GNOMEUIINFO_END
00221 };
00222
00223 static GnomeUIInfo math_menu[] = {
00224 GNOMEUIINFO_SUBTREE (N_("_Convert"), math_cv_menu),
00225 GNOMEUIINFO_SUBTREE (N_("_Arithmetic"), math_ar_menu),
00226 GNOMEUIINFO_SUBTREE (N_("_Background"), math_bg_menu),
00227 GNOMEUIINFO_SUBTREE (N_("Filter _1D"), math_f1d_menu),
00228 GNOMEUIINFO_SUBTREE (N_("Filter _2D"), math_f2d_menu),
00229 GNOMEUIINFO_SUBTREE (N_("_Transformations"), math_tr_menu),
00230 GNOMEUIINFO_SUBTREE (N_("_Statistics"), math_st_menu),
00231 GNOMEUIINFO_SUBTREE (N_("_Misc"), math_misc_menu),
00232 GNOMEUIINFO_SUBTREE (N_("_Probe"), math_probe_menu),
00233
00234
00235 GNOMEUIINFO_END
00236 };
00237
00238
00239
00240 static GnomeUIInfo windows_menu[] = {
00241 GNOMEUIINFO_ITEM_STOCK(N_("Channelselector"), N_("Open the Channelselector Window"),
00242 (gpointer) App::tools_chanselwin_callback, GNOME_STOCK_MENU_BLANK),
00243 GNOMEUIINFO_SEPARATOR,
00244 GNOMEUIINFO_ITEM_STOCK(N_("Monitor"), N_("View the Logging Table"),
00245 (gpointer) App::tools_monitor_callback, GNOME_STOCK_MENU_BLANK),
00246
00247 GNOMEUIINFO_END
00248 };
00249
00250
00251
00252 static GnomeUIInfo tools_menu[] = {
00253 GNOMEUIINFO_ITEM_STOCK(N_("Make Icons..."), N_("Generate Iconpages"),
00254 (gpointer) App::tools_mkicons_callback, GNOME_STOCK_MENU_PRINT),
00255 GNOMEUIINFO_ITEM_STOCK(N_("Reload Plugins"), N_("Reload Plugins"),
00256 (gpointer) App::tools_plugin_reload_callback, GNOME_STOCK_MENU_REFRESH),
00257 GNOMEUIINFO_ITEM_STOCK(N_("Plugin Info"), N_("Show GXSM Plugin Info"),
00258 (gpointer) App::tools_plugin_info_callback, GNOME_STOCK_MENU_INDEX),
00259
00260 GNOMEUIINFO_END
00261 };
00262
00263 static GnomeUIInfo settings_save_preferences_menu[] = {
00264 GNOMEUIINFO_END
00265 };
00266
00267 static GnomeUIInfo settings_load_preferences_menu[] = {
00268 GNOMEUIINFO_END
00269 };
00270
00271
00272
00273 static GnomeUIInfo settings_save_values_menu[] = {
00274 GXSM_SLD_ENTRY (N_("_Default"), N_("Save GXSM default values"),
00275 (gpointer) App::options_save_values_callback, "default"),
00276 GXSM_SLD_ENTRY (N_("_Test"), N_("Save GXSM TEST values"),
00277 (gpointer) App::options_save_values_callback, "test"),
00278 GXSM_SLD_ENTRY (N_("_STM"), N_("Save GXSM TEST values"),
00279 (gpointer) App::options_save_values_callback, "STM"),
00280 GXSM_SLD_ENTRY (N_("_Contact-AFM"), N_("Save GXSM TEST values"),
00281 (gpointer) App::options_save_values_callback, "Contact-AFM"),
00282 GXSM_SLD_ENTRY (N_("_Dynamic-AFM"), N_("Save GXSM TEST values"),
00283 (gpointer) App::options_save_values_callback, "Dynamic-AFM"),
00284 GNOMEUIINFO_END
00285 };
00286
00287 static GnomeUIInfo settings_load_values_menu[] = {
00288 GXSM_SLD_ENTRY (N_("_Default"), N_("Load GXSM default values"),
00289 (gpointer) App::options_load_values_callback, "default"),
00290 GXSM_SLD_ENTRY (N_("_Test"), N_("Load GXSM TEST values"),
00291 (gpointer) App::options_load_values_callback, "test"),
00292 GXSM_SLD_ENTRY (N_("_STM"), N_("Load GXSM TEST values"),
00293 (gpointer) App::options_load_values_callback, "STM"),
00294 GXSM_SLD_ENTRY (N_("_Contact-AFM"), N_("Load GXSM TEST values"),
00295 (gpointer) App::options_load_values_callback, "Contact-AFM"),
00296 GXSM_SLD_ENTRY (N_("_Dynamic-AFM"), N_("Load GXSM TEST values"),
00297 (gpointer) App::options_load_values_callback, "Dynamic-AFM"),
00298 GNOMEUIINFO_END
00299 };
00300
00301
00302
00303 static GnomeUIInfo settings_menu[] = {
00304 GNOMEUIINFO_ITEM_STOCK(N_("_Preferences"), N_("Edit GXSM preferences"),
00305 (gpointer) App::options_preferences_callback, GNOME_STOCK_MENU_PREF),
00306 GNOMEUIINFO_SUBTREE (N_("_Save Preferences"), settings_save_preferences_menu),
00307 GNOMEUIINFO_SUBTREE (N_("_Load Preferences"), settings_load_preferences_menu),
00308 GNOMEUIINFO_SEPARATOR,
00309 GNOMEUIINFO_SUBTREE (N_("_Save Values"), settings_save_values_menu),
00310 GNOMEUIINFO_SUBTREE (N_("_Load Values"), settings_load_values_menu),
00311
00312
00313
00314 GNOMEUIINFO_END
00315 };
00316
00317
00318
00319 static GnomeUIInfo help_menu[] = {
00320
00321 GNOMEUIINFO_ITEM_STOCK(N_("License"), N_("Show GXSM License terms (GPL)"),
00322 (gpointer) App::help_license_callback, GNOME_STOCK_MENU_BLANK),
00323 GNOMEUIINFO_ITEM_STOCK(N_("Manual"), N_("Show GXSM Manual"),
00324 (gpointer) App::help_manual_callback, GNOME_STOCK_MENU_BOOK_OPEN),
00325 GNOMEUIINFO_ITEM_STOCK(N_("Home"), N_("Show GXSM Homepage"),
00326 (gpointer) App::help_home_callback, GNOME_STOCK_PIXMAP_HELP),
00327 GNOMEUIINFO_ITEM_STOCK(N_("Show tip, take a tour"), N_("Show tip of the day, and/or take a tour to GXSM!"),
00328 (gpointer) App::help_tip_callback, GNOME_STOCK_MENU_BLANK),
00329 GNOMEUIINFO_TOGGLEITEM(N_("Enable Remote Tips"), N_("Enable showing of remote command tooltips for all entry fields."),
00330 (gpointer) App::help_remote_tt_callback, NULL),
00331 GNOMEUIINFO_MENU_ABOUT_ITEM((gpointer) App::help_about_callback, NULL),
00332 GNOMEUIINFO_END
00333 };
00334
00335
00336
00337 static GnomeUIInfo main_menu[] = {
00338 GNOMEUIINFO_SUBTREE (N_("_File"), file_menu),
00339 GNOMEUIINFO_SUBTREE (N_("_Edit"), edit_menu),
00340 GNOMEUIINFO_SUBTREE (N_("_Action"), action_menu),
00341 GNOMEUIINFO_SUBTREE (N_("_View"), view_menu),
00342 GNOMEUIINFO_SUBTREE (N_("_Math"), math_menu),
00343 GNOMEUIINFO_SUBTREE (N_("_Windows"), windows_menu),
00344 GNOMEUIINFO_SUBTREE (N_("_Tools"), tools_menu),
00345 GNOMEUIINFO_SUBTREE (N_("_Settings"), settings_menu),
00346 GNOMEUIINFO_SUBTREE (N_("_Help"), help_menu),
00347 GNOMEUIINFO_END
00348 };
00349
00350
00351
00352
00353 #define GXSM_TOOLBAR_ENTRY(L,T,CB,D,PX) { \
00354 GNOME_APP_UI_ITEM, \
00355 N_(L), N_(T), (gpointer) CB, (gpointer) D, \
00356 NULL, GNOME_APP_PIXMAP_STOCK, PX, \
00357 0, GDK_CONTROL_MASK, NULL }
00358
00359
00360 static GnomeUIInfo main_toolbar[] = {
00361 GXSM_TOOLBAR_ENTRY (N_("Scan"), N_("Start scanning the surface"),
00362 App::action_toolbar_callback, "Toolbar_Scan_Start",
00363 GNOME_STOCK_MENU_EXEC),
00364 GXSM_TOOLBAR_ENTRY (N_("Movie"), N_("Repeat scanning the surface..."),
00365 App::action_toolbar_callback, "Toolbar_Scan_Movie",
00366 GNOME_STOCK_MENU_TIMER),
00367 GXSM_TOOLBAR_ENTRY (N_("Stop"), N_("Stop a running scan"),
00368 App::action_toolbar_callback, "Toolbar_Scan_Stop",
00369 GNOME_STOCK_MENU_STOP),
00370 GNOMEUIINFO_ITEM_STOCK(N_("Open"), N_("Open an existing scan"),
00371 (gpointer) App::file_open_callback, GNOME_STOCK_MENU_OPEN),
00372 GNOMEUIINFO_ITEM_STOCK(N_("Save"), N_("Save scans with automatically generated names"),
00373 (gpointer) App::file_save_callback, GNOME_STOCK_MENU_SAVE),
00374
00375
00376 GNOMEUIINFO_ITEM_STOCK(N_("AutoDisp"), N_("Autoscale active view, use rectange for subregion!"),
00377 (gpointer) App::view_autodisp_callback, GNOME_STOCK_MENU_REFRESH),
00378 GNOMEUIINFO_ITEM_STOCK(N_("Exit"), N_("Exit the GXSM"),
00379 (gpointer) App::file_exit_callback, GNOME_STOCK_MENU_QUIT),
00380 GNOMEUIINFO_END
00381 };