00001 // /* Gxsm - Gnome X Scanning Microscopy 00002 // * universal STM/AFM/SARLS/SPALEED/... controlling and 00003 // * data analysis software 00004 // * 00005 // * Copyright (C) 1999,2000,2001,2002,2003 Percy Zahl 00006 // * 00007 // * Authors: Percy Zahl <zahl@users.sf.net> 00008 // * additional features: Andreas Klust <klust@users.sf.net> 00009 // * WWW Home: http://gxsm.sf.net 00010 // * 00011 // * This program is free software; you can redistribute it and/or modify 00012 // * it under the terms of the GNU General Public License as published by 00013 // * the Free Software Foundation; either version 2 of the License, or 00014 // * (at your option) any later version. 00015 // * 00016 // * This program is distributed in the hope that it will be useful, 00017 // * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 // * GNU General Public License for more details. 00020 // * 00021 // * You should have received a copy of the GNU General Public License 00022 // * along with this program; if not, write to the Free Software 00023 // * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 00024 // */ 00025 // 00026 // /* -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 8 c-style: "K&R" -*- */ 00027 // 00028 // #include <locale.h> 00029 // #include <libintl.h> 00030 // 00031 // #include "gxsm_app.h" 00032 // #include "app_mkicons.h" 00033 // 00034 // #include "unit.h" 00035 // #include "pcs.h" 00036 // #include "xsm_mkicons.h" 00037 // 00038 // typedef union OptIndex { 00039 // struct { unsigned char oi, x, y, z; } s; 00040 // unsigned long l; // default Eintrag 00041 // }; 00042 // 00043 // char *Opt_Paper[] = {"A4", "Letter", NULL}; 00044 // char *Opt_Resolution[] = {"300dpi", "600dpi", "1200dpi", NULL}; 00045 // char *Opt_ERegression[] = {"no", "E 30% Rand", "E 5% Rand", NULL}; 00046 // char *Opt_LRegression[] = {"no", "lin.Reg.", NULL}; 00047 // char *Opt_ViewMode[] = {"default", "quick", "direct", "logarithmic", "perodic", "horizontal", NULL}; 00048 // char *Opt_AutoScaling[] = {"default", "auto 5% Rand", "auto 20% Rand", "auto 30% Rand", NULL}; 00049 // char *Opt_Scaling[] = {"no", "min-max", "Cps-lo-hi", NULL}; 00050 // 00051 // 00052 // #define MK_ICONS_KEYBASE "MkIcons" 00053 // 00054 // MKICONS_OPTIONS OptionsList[] = { 00055 // { "Paper", Opt_Paper, "AL", 0 }, 00056 // { "Resolution", Opt_Resolution, "36C", 1 }, 00057 // { "E-Regression", Opt_ERegression, "-Ee", 0 }, 00058 // { "L-Regression", Opt_LRegression, "-l", 0 }, 00059 // { "View-Mode", Opt_ViewMode, "-qdlph", 0 }, 00060 // { "Auto-Scaling", Opt_AutoScaling, "-123", 0 }, 00061 // { "Scaling", Opt_Scaling, "-ac", 0 }, 00062 // { NULL, NULL, NULL, 0 } 00063 // }; 00064 // 00065 // 00066 // MkIconsControl::MkIconsControl (){ 00067 // // get defaults 00068 // 00069 // XSM_DEBUG(DBG_L4, "MkIconsControl::MkIconsControl"); 00070 // 00071 // XsmRescourceManager xrm(MK_ICONS_KEYBASE); 00072 // 00073 // icondata = new MkIconsData( 00074 // xrm.GetStr("SourcePath","."), 00075 // xrm.GetStr("DestPath","/tmp/icons.ps"), 00076 // xrm.GetStr("SourceMask","*.nc"), 00077 // xrm.GetStr("Options","----------"), 00078 // xrm.GetStr("IconFile","icons.ps") 00079 // ); 00080 // icondata = new MkIconsData(); 00081 // 00082 // XSM_DEBUG(DBG_L4, "MkIconsControl::MkIconsControl OK."); 00083 // } 00084 // 00085 // MkIconsControl::~MkIconsControl (){ 00086 // // save defaults 00087 // 00088 // XSM_DEBUG(DBG_L4, "MkIconsControl::~MkIconsControl"); 00089 // MKICONS_OPTIONS *opt; 00090 // XsmRescourceManager xrm(MK_ICONS_KEYBASE); 00091 // for(opt = OptionsList; opt->name; ++opt) 00092 // xrm.Put(opt->name, opt->init); 00093 // 00094 // xrm.Put("SourcePath", icondata->pathname); 00095 // xrm.Put("DestPath", icondata->outputname); 00096 // xrm.Put("SourceMask", icondata->mask); 00097 // xrm.Put("Options", icondata->options); 00098 // xrm.Put("IconFile", icondata->name); 00099 // 00100 // XSM_DEBUG(DBG_L4, "MkIconsControl::~MkIconsControl done."); 00101 // delete icondata; 00102 // } 00103 // 00104 // void MkIconsControl::run(){ 00105 // GtkWidget *dialog; 00106 // GtkWidget *vbox; 00107 // GtkWidget *hbox; 00108 // GtkWidget *VarName; 00109 // GtkWidget *variable; 00110 // GtkWidget *help; 00111 // GtkWidget *separator; 00112 // 00113 // XSM_DEBUG(DBG_L4, "MkIconsControl::run"); 00114 // 00115 // dialog = gtk_dialog_new_with_buttons (_("GXSM make icons"), 00116 // NULL, 00117 // (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), 00118 // _("1x1"), 1, _("2x3"), 2, _("4x6"), 4, _("6x9"), 6, 00119 // GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 00120 // NULL); 00121 // 00122 // vbox = gtk_vbox_new (FALSE, 0); 00123 // gtk_widget_show (vbox); 00124 // 00125 // gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), 00126 // vbox, TRUE, TRUE, GNOME_PAD); 00127 // 00128 // 00129 // hbox = gtk_hbox_new (FALSE, 0); 00130 // gtk_widget_show (hbox); 00131 // gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); 00132 // 00133 // VarName = gtk_label_new (_("Source Path")); 00134 // gtk_widget_set_size_request (VarName, 100, -1); 00135 // gtk_widget_show (VarName); 00136 // gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT); 00137 // gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5); 00138 // gtk_misc_set_padding (GTK_MISC (VarName), 5, 0); 00139 // gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0); 00140 // 00141 // SrcPath = variable = gtk_entry_new (); 00142 // gtk_widget_show (variable); 00143 // gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE, 0); 00144 // gtk_entry_set_text (GTK_ENTRY (variable), icondata->pathname); 00145 // 00146 // help = gtk_button_new_with_label (_("Help")); 00147 // gtk_widget_show (help); 00148 // gtk_box_pack_start (GTK_BOX (hbox), help, TRUE, TRUE, 0); 00149 // gtk_signal_connect (GTK_OBJECT (help), "clicked", 00150 // GTK_SIGNAL_FUNC (show_info_callback), 00151 // (void*)(_("Set to full pathname of data source directory."))); 00152 // 00153 // hbox = gtk_hbox_new (FALSE, 0); 00154 // gtk_widget_show (hbox); 00155 // gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); 00156 // 00157 // VarName = gtk_label_new (_("Selection Mask")); 00158 // gtk_widget_set_size_request (VarName, 100, -1); 00159 // gtk_widget_show (VarName); 00160 // gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT); 00161 // gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5); 00162 // gtk_misc_set_padding (GTK_MISC (VarName), 5, 0); 00163 // gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0); 00164 // 00165 // SrcMask = variable = gtk_entry_new (); 00166 // gtk_widget_show (variable); 00167 // gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE, 0); 00168 // gtk_entry_set_text (GTK_ENTRY (variable), icondata->mask); 00169 // 00170 // help = gtk_button_new_with_label (_("Help")); 00171 // gtk_widget_show (help); 00172 // gtk_box_pack_start (GTK_BOX (hbox), help, TRUE, TRUE, 0); 00173 // gtk_signal_connect (GTK_OBJECT (help), "clicked", 00174 // GTK_SIGNAL_FUNC (show_info_callback), 00175 // (void*)(_("Select subset of files via wildcard."))); 00176 // 00177 // hbox = gtk_hbox_new (FALSE, 0); 00178 // gtk_widget_show (hbox); 00179 // gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); 00180 // 00181 // VarName = gtk_label_new (_("Icon Filename")); 00182 // gtk_widget_set_size_request (VarName, 100, -1); 00183 // gtk_widget_show (VarName); 00184 // gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT); 00185 // gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5); 00186 // gtk_misc_set_padding (GTK_MISC (VarName), 5, 0); 00187 // gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0); 00188 // 00189 // IconName = variable = gtk_entry_new (); 00190 // gtk_widget_show (variable); 00191 // gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE, 0); 00192 // gtk_entry_set_text (GTK_ENTRY (variable), icondata->outputname); 00193 // 00194 // help = gtk_button_new_with_label (_("Help")); 00195 // gtk_widget_show (help); 00196 // gtk_box_pack_start (GTK_BOX (hbox), help, TRUE, TRUE, 0); 00197 // gtk_signal_connect (GTK_OBJECT (help), "clicked", 00198 // GTK_SIGNAL_FUNC (show_info_callback), 00199 // (void*)(_("Full Pathname to Iconfile, openmode is append !"))); 00200 // 00201 // separator = gtk_hseparator_new (); 00202 // /* The last 3 arguments to gtk_box_pack_start are: 00203 // * expand, fill, padding. */ 00204 // gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 5); 00205 // gtk_widget_show (separator); 00206 // 00207 // // make Option Menus 00208 // hbox = gtk_hbox_new (FALSE, 0); 00209 // gtk_widget_show (hbox); 00210 // gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); 00211 // 00212 // GtkWidget *mvbox, *label, *wid, *menu, *menuitem; 00213 // MKICONS_OPTIONS *opt; 00214 // char **item; 00215 // OptIndex OptI; 00216 // int i,j; 00217 // 00218 // XSM_DEBUG(DBG_L4, "MkIconsControl::run - Setting options"); 00219 // 00220 // 00221 // XsmRescourceManager xrm(MK_ICONS_KEYBASE); 00222 // for(j=0, opt = OptionsList; opt->name; ++j, ++opt){ 00223 // // Init from rescources 00224 // gchar *idefault=g_strdup_printf("%d", opt->init); 00225 // xrm.Get(opt->name, &opt->init, idefault); 00226 // g_free(idefault); 00227 // 00228 // mvbox = gtk_vbox_new (FALSE, 0); 00229 // gtk_widget_show (mvbox); 00230 // gtk_box_pack_start (GTK_BOX (hbox), mvbox, TRUE, TRUE, 0); 00231 // 00232 // label = gtk_label_new (opt->name); 00233 // gtk_widget_show (label); 00234 // gtk_container_add (GTK_CONTAINER (mvbox), label); 00235 // 00236 // wid = gtk_option_menu_new (); 00237 // gtk_widget_show (wid); 00238 // gtk_container_add (GTK_CONTAINER (mvbox), wid); 00239 // 00240 // menu = gtk_menu_new (); 00241 // 00242 // // fill options in 00243 // for(i=0, item=opt->list; *item; ++i, ++item){ 00244 // // make menuitem 00245 // menuitem = gtk_menu_item_new_with_label (*item); 00246 // gtk_widget_show (menuitem); 00247 // gtk_menu_append (GTK_MENU (menu), menuitem); 00248 // /* connect with signal-handler if selected */ 00249 // OptI.l = 0L; 00250 // OptI.s.oi = j; 00251 // OptI.s.x = i; 00252 // gtk_object_set_data(GTK_OBJECT (menuitem), "optindex", (gpointer)OptI.l); 00253 // gtk_signal_connect (GTK_OBJECT (menuitem), "activate", 00254 // GTK_SIGNAL_FUNC (MkIconsControl::option_choice_callback), 00255 // this); 00256 // } 00257 // gtk_option_menu_set_menu (GTK_OPTION_MENU (wid), menu); 00258 // gtk_option_menu_set_history (GTK_OPTION_MENU (wid), opt->init); 00259 // } 00260 // 00261 // XSM_DEBUG(DBG_L4, "MkIconsControl::run - Setting options ... OK"); 00262 // 00263 // XSM_DEBUG(DBG_L4, "MkIconsControl::run - Dlg show, run"); 00264 // 00265 // gtk_widget_show(dialog); 00266 // dlg_clicked (gtk_dialog_run (GTK_DIALOG(dialog))); 00267 // gtk_widget_destroy (dialog); 00268 // 00269 // } 00270 // 00271 // void MkIconsControl::option_choice_callback(GtkWidget *widget, MkIconsControl *mki){ 00272 // OptIndex i; 00273 // i.l=(long)gtk_object_get_data( GTK_OBJECT (widget), "optindex"); 00274 // mki->icondata->options[i.s.oi] = OptionsList[i.s.oi].id[OptionsList[i.s.oi].init=i.s.x]; 00275 // XSM_DEBUG(DBG_L2, "MkIconsControl::option_choice_callback=" << mki->icondata->options ); 00276 // } 00277 // 00278 // void MkIconsControl::dlg_clicked(gint response){ 00279 // 00280 // XSM_DEBUG(DBG_L4, "MkIconsControl::clicked - " << response); 00281 // 00282 // g_free(icondata->pathname); 00283 // icondata->pathname = g_strdup(gtk_entry_get_text (GTK_ENTRY (SrcPath))); 00284 // 00285 // g_free(icondata->mask); 00286 // icondata->mask = g_strdup(gtk_entry_get_text (GTK_ENTRY (SrcMask))); 00287 // 00288 // g_free(icondata->outputname); 00289 // icondata->outputname = g_strdup(gtk_entry_get_text (GTK_ENTRY (IconName))); 00290 // 00291 // switch(response){ 00292 // case 1: 00293 // show_info_callback(NULL, _("Generating 1x1 Icon Pages !")); 00294 // icondata->nix=1; 00295 // gapp->xsm->MkIcons(icondata); 00296 // break; 00297 // case 2: 00298 // show_info_callback(NULL, _("Generating 2x3 Icon Pages !")); 00299 // icondata->nix=2; 00300 // gapp->xsm->MkIcons(icondata); 00301 // break; 00302 // case 4: 00303 // show_info_callback(NULL, _("Generating 4x6 Icon Pages !")); 00304 // icondata->nix=4; 00305 // gapp->xsm->MkIcons(icondata); 00306 // break; 00307 // case 6: 00308 // show_info_callback(NULL, _("Generating 6x9 Icon Pages !")); 00309 // icondata->nix=6; 00310 // gapp->xsm->MkIcons(icondata); 00311 // break; 00312 // case GTK_RESPONSE_CANCEL: 00313 // break; 00314 // } 00315 // }