00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifdef HAVE_CONFIG_H
00030 # include <config.h>
00031 #endif
00032
00033 #include <sys/types.h>
00034 #include <sys/stat.h>
00035 #include <unistd.h>
00036 #include <string.h>
00037 #include <stdio.h>
00038
00039 #include <gdk/gdkkeysyms.h>
00040 #include <gtk/gtk.h>
00041
00042 #include "gerbv.h"
00043 #include "main.h"
00044 #include "callbacks.h"
00045 #include "interface.h"
00046 #include "render.h"
00047
00048 #ifdef RENDER_USING_GDK
00049 #include "draw-gdk.h"
00050 #else
00051 #include "draw.h"
00052 #endif
00053
00054 #include "gerbv_icon.h"
00055 #include "icons.h"
00056 extern gerbv_render_info_t screenRenderInfo;
00057
00058 static GtkWidget *render_combobox;
00059
00060 #define WIN_TITLE "Gerbv -- gEDA's Gerber Viewer"
00061 #define _(String) (String)
00062
00063
00064 void
00065 rename_main_window(char const* filename, GtkWidget *main_win)
00066 {
00067 GString *win_title=g_string_new(NULL);
00068 static GtkWidget *win=NULL;
00069
00070 if( main_win != NULL )
00071 win = main_win;
00072
00073 g_assert(win != NULL);
00074
00075 g_string_printf (win_title,"%s version %s: %s", WIN_TITLE, VERSION, filename);
00076 gtk_window_set_title(GTK_WINDOW(win), win_title->str);
00077 g_string_free(win_title,TRUE);
00078 }
00079
00080
00081 void
00082 set_window_icon (GtkWidget * this_window)
00083 {
00084 GdkPixmap *pixmap;
00085 GdkBitmap *mask;
00086
00087 pixmap = gdk_pixmap_create_from_xpm_d (this_window->window, &mask,
00088 &this_window->style->bg[GTK_STATE_NORMAL], gerbv_icon_xpm);
00089 gdk_window_set_icon (this_window->window, NULL, pixmap, mask);
00090
00091 return;
00092 }
00093
00094
00095 void
00096 interface_create_gui (int req_width, int req_height)
00097 {
00098 GtkWidget *mainWindow;
00099 GtkWidget *vbox1;
00100 GtkWidget *menubar1;
00101
00102 GtkWidget *menuitem_file;
00103 GtkWidget *menuitem_file_menu;
00104 GtkWidget *new;
00105 GtkWidget *open_project;
00106 GtkWidget *image33;
00107 GtkWidget *open_layer;
00108 GtkWidget *revert;
00109 GtkWidget *save;
00110 GtkWidget *save_as;
00111 GtkWidget *save_layer;
00112 GtkWidget *save_as_layer;
00113 GtkWidget *separatormenuitem1;
00114 GtkWidget *export;
00115 GtkWidget *export_menu;
00116 GtkWidget *png;
00117 GtkWidget *separator1;
00118 GtkWidget *quit;
00119
00120 GtkWidget *menuitem_edit;
00121 GtkWidget *menuitem_edit_menu;
00122 GtkWidget *delete_selected;
00123
00124 GtkWidget *menuitem_view;
00125 GtkWidget *menuitem_view_menu;
00126 GtkWidget *zoom_in;
00127 GtkWidget *zoom_out;
00128 GtkWidget *separator5;
00129 GtkWidget *fit_to_window;
00130 GtkWidget *menuitem_analyze;
00131 GtkWidget *menuitem_analyze_menu;
00132 GtkWidget *analyze_active_gerbers;
00133 GtkWidget *analyze_active_drill;
00134 GtkWidget *analyze_display_selected_obj_props;
00135
00136
00137
00138 GtkWidget *menubar_tools;
00139 GtkWidget *menubar_tools_menu;
00140 #ifndef RENDER_USING_GDK
00141 GtkWidget *toggletoolbutton_pointer;
00142 GtkWidget *pointer_tool;
00143 GdkPixbuf *pointerpixbuf;
00144 GtkWidget *pointerimage;
00145 #endif
00146 GtkWidget *pan_tool;
00147 GtkWidget *zoom_tool;
00148 GtkWidget *measure_tool;
00149 GtkWidget *menuitem10;
00150 GtkWidget *menuitem10_menu;
00151
00152 GtkWidget *about;
00153 GtkWidget *image34;
00154 GtkWidget *toolbar_hbox;
00155 GtkWidget *handlebox;
00156 GtkWidget *button_toolbar;
00157 GtkIconSize tmp_toolbar_icon_size;
00158 GtkWidget *toolbutton_new;
00159 GtkWidget *toolbutton_open;
00160 GtkWidget *toolbutton_revert;
00161 GtkWidget *toolbutton_save;
00162 GtkWidget *separatortoolitem1;
00163 #ifndef RENDER_USING_GDK
00164 #if GTK_CHECK_VERSION(2,10,0)
00165 GtkWidget *print;
00166 GtkWidget *toolbutton_print;
00167 GtkWidget *separator2;
00168 GtkWidget *separatortoolitem2;
00169 #endif
00170 #endif
00171 GtkWidget *toolbutton_zoom_in;
00172 GtkWidget *toolbutton_zoom_out;
00173 GtkWidget *toolbutton_zoom_fit;
00174
00175
00176
00177
00178
00179 GtkWidget *separatortoolitem4;
00180 GtkWidget *toggletoolbutton_pan;
00181 GtkWidget *toggletoolbutton_zoom;
00182 GtkWidget *toggletoolbutton_measure;
00183 GtkWidget *hpaned1;
00184 GtkWidget *sidepane_vbox;
00185 GtkWidget *sidepane_notebook;
00186 GtkWidget *vbox10;
00187 GtkWidget *hbox4;
00188 GtkWidget *label1;
00189 GtkWidget *scrolledwindow1;
00190 GtkWidget *hbox1;
00191 GtkWidget *button4;
00192 GtkWidget *image8;
00193 GtkWidget *button5;
00194 GtkWidget *image9;
00195 GtkWidget *button6;
00196 GtkWidget *image10;
00197 GtkWidget *button7;
00198 GtkWidget *image11;
00199 GtkWidget *Layer_label;
00200 GtkWidget *vbox11;
00201 GtkWidget *messages_scrolledwindow;
00202 GtkWidget *message_textview;
00203 GtkWidget *clear_messages_button;
00204 GtkWidget *Message_label;
00205 GtkWidget *vbox2;
00206 GtkWidget *main_view_table;
00207 GtkWidget *hRuler;
00208 GtkWidget *vRuler;
00209 GtkWidget *hbox5;
00210 GtkWidget *statusbar_label_left;
00211 GtkWidget *combobox2;
00212 GtkWidget *statusbar_label_right;
00213 GtkWidget *drawingarea, *hAdjustment, *vAdjustment, *hScrollbar, *vScrollbar;
00214
00215 GtkAccelGroup *accel_group;
00216 GtkTooltips *tooltips;
00217
00218
00219 GdkPixbuf *zoompixbuf;
00220 GtkWidget *zoomimage;
00221 GdkPixbuf *measurepixbuf;
00222 GtkWidget *measureimage;
00223 GdkPixbuf *movepixbuf;
00224 GtkWidget *moveimage;
00225
00226 GtkWidget *tempImage;
00227 GtkWidget *tempMenuItem;
00228
00229 GtkStockItem item;
00230 #ifndef RENDER_USING_GDK
00231 pointerpixbuf = gdk_pixbuf_new_from_inline(-1, pointer, FALSE, NULL);
00232 #endif
00233 movepixbuf = gdk_pixbuf_new_from_inline(-1, move, FALSE, NULL);
00234 zoompixbuf = gdk_pixbuf_new_from_inline(-1, lzoom, FALSE, NULL);
00235 measurepixbuf = gdk_pixbuf_new_from_inline(-1, ruler, FALSE, NULL);
00236
00237 tooltips = gtk_tooltips_new();
00238
00239 accel_group = gtk_accel_group_new ();
00240
00241 mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
00242 gtk_window_set_title (GTK_WINDOW (mainWindow), _("Gerbv -- gEDA's Gerber Viewer"));
00243
00244 vbox1 = gtk_vbox_new (FALSE, 0);
00245 gtk_container_add (GTK_CONTAINER (mainWindow), vbox1);
00246
00247 menubar1 = gtk_menu_bar_new ();
00248 gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
00249
00250 menuitem_file = gtk_menu_item_new_with_mnemonic (_("_File"));
00251 gtk_container_add (GTK_CONTAINER (menubar1), menuitem_file);
00252
00253 menuitem_file_menu = gtk_menu_new ();
00254 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem_file), menuitem_file_menu);
00255
00256 new = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group);
00257 gtk_tooltips_set_tip (tooltips, new, "Close all layers and start a new project", NULL);
00258 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), new);
00259 gtk_widget_add_accelerator (new, "activate", accel_group,
00260 GDK_n, (GdkModifierType) GDK_CONTROL_MASK,
00261 GTK_ACCEL_VISIBLE);
00262
00263 open_layer = gtk_menu_item_new_with_mnemonic (_("Open _Layer(s)..."));
00264
00265 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), open_layer);
00266 gtk_tooltips_set_tip (tooltips, open_layer, "Open Gerber, drill, or pick and place file(s)", NULL);
00267
00268 revert = gtk_image_menu_item_new_from_stock ("gtk-revert-to-saved", accel_group);
00269 gtk_tooltips_set_tip (tooltips, revert, "Reload all layers", NULL);
00270 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), revert);
00271
00272 if (gtk_stock_lookup("gtk-save", &item)) {
00273 gchar new_save[] = "_Save active layer";
00274 item.label = new_save;
00275 gtk_stock_add(&item, 1);
00276 }
00277 save_layer = gtk_image_menu_item_new_from_stock ("gtk-save", accel_group);
00278 gtk_tooltips_set_tip (tooltips, save_layer, "Save the active layer", NULL);
00279 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), save_layer);
00280
00281 if (gtk_stock_lookup("gtk-save-as", &item)) {
00282 gchar new_saveas[] = "Save active layer _As...";
00283 item.label = new_saveas;
00284 gtk_stock_add(&item, 1);
00285 }
00286 save_as_layer = gtk_image_menu_item_new_from_stock ("gtk-save-as", accel_group);
00287 gtk_tooltips_set_tip (tooltips, save_as_layer, "Save the active layer to a new file", NULL);
00288 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), save_as_layer);
00289
00290 separator1 = gtk_separator_menu_item_new ();
00291 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), separator1);
00292 gtk_widget_set_sensitive (separator1, FALSE);
00293
00294 open_project = gtk_image_menu_item_new_with_mnemonic (_("_Open Project..."));
00295 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), open_project);
00296 gtk_tooltips_set_tip (tooltips, open_project, "Open an existing Gerbv project", NULL);
00297 image33 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU);
00298 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (open_project), image33);
00299
00300
00301 save = gtk_image_menu_item_new_with_mnemonic ("Save Project");
00302 gtk_tooltips_set_tip (tooltips, save, "Save the current project", NULL);
00303 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), save);
00304
00305 if (gtk_stock_lookup("gtk-save-as", &item)) {
00306 gchar new[] = "Save Project as...";
00307 item.label = new;
00308 gtk_stock_add(&item, 1);
00309 }
00310
00311 save_as = gtk_image_menu_item_new_with_mnemonic ("Save Project As...");
00312 gtk_tooltips_set_tip (tooltips, save_as, "Save the current project to a new file", NULL);
00313 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), save_as);
00314
00315 separatormenuitem1 = gtk_separator_menu_item_new ();
00316 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), separatormenuitem1);
00317 gtk_widget_set_sensitive (separatormenuitem1, FALSE);
00318
00319 export = gtk_menu_item_new_with_mnemonic (_("_Export"));
00320 gtk_tooltips_set_tip (tooltips, export, "Export all visible layers to a new format", NULL);
00321 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), export);
00322
00323 export_menu = gtk_menu_new ();
00324 gtk_menu_item_set_submenu (GTK_MENU_ITEM (export), export_menu);
00325
00326 png = gtk_menu_item_new_with_mnemonic (_("PNG..."));
00327 gtk_container_add (GTK_CONTAINER (export_menu), png);
00328 gtk_tooltips_set_tip (tooltips, png, _("Export project to a PNG file..."), NULL);
00329
00330 GtkWidget *rs274x,*drill;
00331 #ifndef RENDER_USING_GDK
00332 GtkWidget *pdf;
00333 GtkWidget *svg;
00334 GtkWidget *postscript;
00335
00336 pdf = gtk_menu_item_new_with_mnemonic (_("PDF..."));
00337 gtk_container_add (GTK_CONTAINER (export_menu), pdf);
00338 gtk_tooltips_set_tip (tooltips, pdf, _("Export project to a PDF file..."), NULL);
00339
00340 svg = gtk_menu_item_new_with_mnemonic (_("SVG..."));
00341 gtk_container_add (GTK_CONTAINER (export_menu), svg);
00342 gtk_tooltips_set_tip (tooltips, svg, _("Export project to a SVG file"), NULL);
00343
00344 postscript = gtk_menu_item_new_with_mnemonic (_("PostScript..."));
00345 gtk_container_add (GTK_CONTAINER (export_menu), postscript);
00346 gtk_tooltips_set_tip (tooltips, postscript, _("Export project to a PostScript file"), NULL);
00347 #endif
00348 rs274x = gtk_menu_item_new_with_mnemonic (_("RS-274X (Gerber)..."));
00349 gtk_container_add (GTK_CONTAINER (export_menu), rs274x);
00350 gtk_tooltips_set_tip (tooltips, rs274x, _("Export layer to a RS-274X (Gerber) file"), NULL);
00351
00352 drill = gtk_menu_item_new_with_mnemonic (_("Excellon drill..."));
00353 gtk_container_add (GTK_CONTAINER (export_menu), drill);
00354 gtk_tooltips_set_tip (tooltips, drill, _("Export layer to an Excellon drill file"), NULL);
00355
00356 separator1 = gtk_separator_menu_item_new ();
00357 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), separator1);
00358 gtk_widget_set_sensitive (separator1, FALSE);
00359 #ifndef RENDER_USING_GDK
00360 #if GTK_CHECK_VERSION(2,10,0)
00361 if (gtk_stock_lookup("gtk-print", &item)) {
00362 gchar new[] = "_Print...";
00363 item.label = new;
00364 gtk_stock_add(&item, 1);
00365 }
00366
00367 print = gtk_image_menu_item_new_from_stock ("gtk-print", accel_group);
00368 gtk_tooltips_set_tip (tooltips, print, "Print the visible layers", NULL);
00369 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), print);
00370
00371 separator2 = gtk_separator_menu_item_new ();
00372 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), separator2);
00373 gtk_widget_set_sensitive (separator2, FALSE);
00374 #endif
00375 #endif
00376 quit = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group);
00377 gtk_tooltips_set_tip (tooltips, quit, "Quit Gerbv", NULL);
00378 gtk_container_add (GTK_CONTAINER (menuitem_file_menu), quit);
00379
00380
00381 menuitem_edit = gtk_menu_item_new_with_mnemonic (_("_Edit"));
00382 gtk_container_add (GTK_CONTAINER (menubar1), menuitem_edit);
00383
00384 menuitem_edit_menu = gtk_menu_new ();
00385 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem_edit), menuitem_edit_menu);
00386
00387 delete_selected = gtk_image_menu_item_new_with_mnemonic (_("_Delete selected object(s)"));
00388 gtk_tooltips_set_tip (tooltips, delete_selected,
00389 "Delete selected objects", NULL);
00390 tempImage = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_MENU);
00391 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (delete_selected), tempImage);
00392 gtk_container_add (GTK_CONTAINER (menuitem_edit_menu), delete_selected);
00393
00394
00395
00396 menuitem_view = gtk_menu_item_new_with_mnemonic (_("_View"));
00397 gtk_container_add (GTK_CONTAINER (menubar1), menuitem_view);
00398
00399 menuitem_view_menu = gtk_menu_new ();
00400 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem_view), menuitem_view_menu);
00401
00402 zoom_in = gtk_image_menu_item_new_from_stock ("gtk-zoom-in", accel_group);
00403 gtk_tooltips_set_tip (tooltips, zoom_in, "Zoom in", NULL);
00404 gtk_container_add (GTK_CONTAINER (menuitem_view_menu), zoom_in);
00405
00406 zoom_out = gtk_image_menu_item_new_from_stock ("gtk-zoom-out", accel_group);
00407 gtk_tooltips_set_tip (tooltips, zoom_out, "Zoom out", NULL);
00408 gtk_container_add (GTK_CONTAINER (menuitem_view_menu), zoom_out);
00409
00410 separator5 = gtk_separator_menu_item_new ();
00411 gtk_container_add (GTK_CONTAINER (menuitem_view_menu), separator5);
00412 gtk_widget_set_sensitive (separator5, FALSE);
00413
00414 fit_to_window = gtk_image_menu_item_new_from_stock ("gtk-zoom-fit", accel_group);
00415 gtk_tooltips_set_tip (tooltips, fit_to_window, "Zoom to fit all visible layers in the window", NULL);
00416 gtk_container_add (GTK_CONTAINER (menuitem_view_menu), fit_to_window);
00417
00418 menuitem_analyze = gtk_menu_item_new_with_mnemonic (_("_Analyze"));
00419 gtk_container_add (GTK_CONTAINER (menubar1), menuitem_analyze);
00420
00421 menuitem_analyze_menu = gtk_menu_new ();
00422 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem_analyze), menuitem_analyze_menu);
00423
00424 analyze_active_gerbers = gtk_menu_item_new_with_mnemonic (_("_Analyze visible Gerber layers"));
00425 gtk_tooltips_set_tip (tooltips, analyze_active_gerbers,
00426 "Examine a detailed anaylsis of the contents of all visible Gerber layers", NULL);
00427 gtk_container_add (GTK_CONTAINER (menuitem_analyze_menu), analyze_active_gerbers);
00428
00429 analyze_active_drill = gtk_menu_item_new_with_mnemonic (_("_Analyze visible drill layers"));
00430 gtk_tooltips_set_tip (tooltips, analyze_active_drill,
00431 "Examine a detailed anaylsis of the contents of all visible drill layers", NULL);
00432 gtk_container_add (GTK_CONTAINER (menuitem_analyze_menu), analyze_active_drill);
00433
00434 analyze_display_selected_obj_props = gtk_menu_item_new_with_mnemonic (_("_Display selected object(s) properties"));
00435 gtk_tooltips_set_tip (tooltips, analyze_display_selected_obj_props,
00436 "Show the properties of the selected object(s).", NULL);
00437 gtk_container_add (GTK_CONTAINER (menuitem_analyze_menu), analyze_display_selected_obj_props);
00438
00439
00440
00441
00442
00443
00444 menubar_tools = gtk_menu_item_new_with_mnemonic (_("_Tools"));
00445 gtk_container_add (GTK_CONTAINER (menubar1), menubar_tools);
00446
00447 menubar_tools_menu = gtk_menu_new ();
00448 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_tools), menubar_tools_menu);
00449 #ifndef RENDER_USING_GDK
00450 pointer_tool = gtk_image_menu_item_new_with_mnemonic (_("_Pointer Tool"));
00451
00452
00453
00454
00455 gtk_container_add (GTK_CONTAINER (menubar_tools_menu), pointer_tool);
00456 gtk_tooltips_set_tip (tooltips, pointer_tool, "Select objects on the screen", NULL);
00457 gtk_widget_add_accelerator (pointer_tool, "activate", accel_group,
00458 GDK_F1, (GdkModifierType) 0,
00459 GTK_ACCEL_VISIBLE);
00460 #endif
00461 pan_tool = gtk_image_menu_item_new_with_mnemonic ("Pa_n Tool");
00462
00463
00464
00465
00466 gtk_container_add (GTK_CONTAINER (menubar_tools_menu), pan_tool);
00467 gtk_tooltips_set_tip (tooltips, pan_tool, "Pan by left clicking and dragging", NULL);
00468 gtk_widget_add_accelerator (pan_tool, "activate", accel_group,
00469 GDK_F2, (GdkModifierType) 0,
00470 GTK_ACCEL_VISIBLE);
00471
00472 zoom_tool = gtk_image_menu_item_new_with_mnemonic (_("_Zoom Tool"));
00473
00474
00475
00476
00477 gtk_container_add (GTK_CONTAINER (menubar_tools_menu), zoom_tool);
00478 gtk_tooltips_set_tip (tooltips, zoom_tool, "Zoom by left clicking or dragging", NULL);
00479 gtk_widget_add_accelerator (zoom_tool, "activate", accel_group,
00480 GDK_F3, (GdkModifierType) 0,
00481 GTK_ACCEL_VISIBLE);
00482
00483 measure_tool = gtk_image_menu_item_new_with_mnemonic (_("_Measure Tool"));
00484
00485
00486
00487
00488 gtk_container_add (GTK_CONTAINER (menubar_tools_menu), measure_tool);
00489 gtk_tooltips_set_tip (tooltips, measure_tool, "Measure distances on the screen", NULL);
00490 gtk_widget_add_accelerator (measure_tool, "activate", accel_group,
00491 GDK_F4, (GdkModifierType) 0,
00492 GTK_ACCEL_VISIBLE);
00493
00494 menuitem10 = gtk_menu_item_new_with_mnemonic (_("_Help"));
00495 gtk_container_add (GTK_CONTAINER (menubar1), menuitem10);
00496
00497 menuitem10_menu = gtk_menu_new ();
00498 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem10), menuitem10_menu);
00499
00500
00501
00502
00503
00504 about = gtk_image_menu_item_new_with_mnemonic (_("_About Gerbv..."));
00505 gtk_container_add (GTK_CONTAINER (menuitem10_menu), about);
00506 gtk_tooltips_set_tip (tooltips, about, "View information about this software", NULL);
00507
00508 image34 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_MENU);
00509 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (about), image34);
00510
00511 toolbar_hbox = gtk_hbox_new (FALSE, 0);
00512 gtk_box_pack_start (GTK_BOX (vbox1), toolbar_hbox, FALSE, FALSE, 0);
00513
00514 handlebox = gtk_handle_box_new ();
00515
00516 gtk_box_pack_start (GTK_BOX (toolbar_hbox), handlebox, TRUE, TRUE, 0);
00517
00518 button_toolbar = gtk_toolbar_new ();
00519 gtk_widget_set_size_request (button_toolbar, 500, -1);
00520 gtk_container_add (GTK_CONTAINER (handlebox), button_toolbar);
00521 gtk_toolbar_set_style (GTK_TOOLBAR (button_toolbar), GTK_TOOLBAR_ICONS);
00522 tmp_toolbar_icon_size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (button_toolbar));
00523
00524 toolbutton_new = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-new");
00525 gtk_tooltips_set_tip (tooltips, toolbutton_new, "Close all layers and start a new project", NULL);
00526 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_new);
00527
00528 toolbutton_open = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-open");
00529 gtk_tooltips_set_tip (tooltips, toolbutton_open, "Open Gerber, drill, or pick and place file(s)", NULL);
00530 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_open);
00531
00532 toolbutton_revert = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-revert-to-saved");
00533 gtk_tooltips_set_tip (tooltips, toolbutton_revert, "Reload all layers", NULL);
00534 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_revert);
00535
00536 toolbutton_save = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-save");
00537 gtk_tooltips_set_tip (tooltips, toolbutton_save, "Save the current project", NULL);
00538 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_save);
00539
00540 separatortoolitem1 = (GtkWidget*) gtk_separator_tool_item_new ();
00541 gtk_container_add (GTK_CONTAINER (button_toolbar), separatortoolitem1);
00542 #ifndef RENDER_USING_GDK
00543 #if GTK_CHECK_VERSION(2,10,0)
00544 toolbutton_print = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-print");
00545 gtk_tooltips_set_tip (tooltips, toolbutton_print, "Print the visible layers", NULL);
00546 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_print);
00547
00548 separatortoolitem2 = (GtkWidget*) gtk_separator_tool_item_new ();
00549 gtk_container_add (GTK_CONTAINER (button_toolbar), separatortoolitem2);
00550 #endif
00551 #endif
00552 toolbutton_zoom_in = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-zoom-in");
00553 gtk_tooltips_set_tip (tooltips, toolbutton_zoom_in, "Zoom in", NULL);
00554 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_zoom_in);
00555
00556 toolbutton_zoom_out = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-zoom-out");
00557 gtk_tooltips_set_tip (tooltips, toolbutton_zoom_out, "Zoom out", NULL);
00558 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_zoom_out);
00559
00560 toolbutton_zoom_fit = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-zoom-fit");
00561 gtk_tooltips_set_tip (tooltips, toolbutton_zoom_fit, "Zoom to fit all visible layers in the window", NULL);
00562 gtk_container_add (GTK_CONTAINER (button_toolbar), toolbutton_zoom_fit);
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579 separatortoolitem4 = (GtkWidget*) gtk_separator_tool_item_new ();
00580 gtk_container_add (GTK_CONTAINER (button_toolbar), separatortoolitem4);
00581 #ifndef RENDER_USING_GDK
00582 toggletoolbutton_pointer = (GtkWidget*) gtk_toggle_tool_button_new();
00583 pointerimage = gtk_image_new_from_pixbuf(pointerpixbuf);
00584 gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(toggletoolbutton_pointer),
00585 pointerimage);
00586 gtk_tooltips_set_tip (tooltips, toggletoolbutton_pointer, "Select objects on the screen", NULL);
00587 gtk_container_add (GTK_CONTAINER (button_toolbar), toggletoolbutton_pointer);
00588 #endif
00589 toggletoolbutton_pan = (GtkWidget*) gtk_toggle_tool_button_new();
00590 moveimage = gtk_image_new_from_pixbuf(movepixbuf);
00591 gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(toggletoolbutton_pan),
00592 moveimage);
00593 gtk_tooltips_set_tip (tooltips, toggletoolbutton_pan, "Pan by left clicking and dragging", NULL);
00594 gtk_container_add (GTK_CONTAINER (button_toolbar), toggletoolbutton_pan);
00595
00596
00597 toggletoolbutton_zoom = (GtkWidget*) gtk_toggle_tool_button_new();
00598 zoomimage = gtk_image_new_from_pixbuf(zoompixbuf);
00599 gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(toggletoolbutton_zoom),
00600 zoomimage);
00601 gtk_tooltips_set_tip (tooltips, toggletoolbutton_zoom, "Zoom by left clicking or dragging", NULL);
00602 gtk_container_add (GTK_CONTAINER (button_toolbar), toggletoolbutton_zoom);
00603
00604 toggletoolbutton_measure = (GtkWidget*) gtk_toggle_tool_button_new();
00605 measureimage = gtk_image_new_from_pixbuf(measurepixbuf);
00606 gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(toggletoolbutton_measure),
00607 measureimage);
00608 gtk_tooltips_set_tip (tooltips, toggletoolbutton_measure, "Measure distances on the screen", NULL);
00609 gtk_container_add (GTK_CONTAINER (button_toolbar), toggletoolbutton_measure);
00610
00611 hpaned1 = gtk_hpaned_new ();
00612 gtk_box_pack_start (GTK_BOX (vbox1), hpaned1, TRUE, TRUE, 0);
00613 gtk_paned_set_position (GTK_PANED (hpaned1), 225);
00614
00615 sidepane_vbox = gtk_vbox_new (FALSE, 0);
00616 gtk_widget_set_size_request (sidepane_vbox, 150, -1);
00617
00618 gtk_paned_pack1 (GTK_PANED (hpaned1), sidepane_vbox, TRUE, FALSE);
00619 gtk_container_set_border_width (GTK_CONTAINER (sidepane_vbox), 5);
00620
00621 sidepane_notebook = gtk_notebook_new ();
00622 gtk_widget_set_size_request (sidepane_notebook, 100, -1);
00623 gtk_box_pack_start (GTK_BOX (sidepane_vbox), sidepane_notebook, TRUE, TRUE, 0);
00624
00625 vbox10 = gtk_vbox_new (FALSE, 3);
00626 gtk_container_add (GTK_CONTAINER (sidepane_notebook), vbox10);
00627 gtk_widget_set_size_request (vbox10, 82, -1);
00628 gtk_container_set_border_width (GTK_CONTAINER (vbox10), 4);
00629
00630 hbox4 = gtk_hbox_new (FALSE, 0);
00631 gtk_box_pack_start (GTK_BOX (vbox10), hbox4, FALSE, FALSE, 0);
00632
00633 label1 = gtk_label_new (_("Rendering: "));
00634 gtk_box_pack_start (GTK_BOX (hbox4), label1, FALSE, FALSE, 0);
00635
00636 render_combobox = gtk_combo_box_new_text ();
00637 gtk_box_pack_start (GTK_BOX (hbox4), render_combobox, TRUE, TRUE, 0);
00638 #ifdef RENDER_USING_GDK
00639 gtk_combo_box_append_text (GTK_COMBO_BOX (render_combobox), _("Normal"));
00640 gtk_combo_box_append_text (GTK_COMBO_BOX (render_combobox), _("XOR"));
00641 if (screenRenderInfo.renderType < 2)
00642 gtk_combo_box_set_active (GTK_COMBO_BOX (render_combobox), screenRenderInfo.renderType);
00643 #else
00644 gtk_combo_box_append_text (GTK_COMBO_BOX (render_combobox), _("Fast"));
00645 gtk_combo_box_append_text (GTK_COMBO_BOX (render_combobox), _("Fast, with XOR"));
00646 gtk_combo_box_append_text (GTK_COMBO_BOX (render_combobox), _("Normal"));
00647 gtk_combo_box_append_text (GTK_COMBO_BOX (render_combobox), _("High quality"));
00648 if (screenRenderInfo.renderType < 4)
00649 gtk_combo_box_set_active (GTK_COMBO_BOX (render_combobox), screenRenderInfo.renderType);
00650 #endif
00651 scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
00652 gtk_box_pack_start (GTK_BOX (vbox10), scrolledwindow1, TRUE, TRUE, 0);
00653 gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow1), 2);
00654 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1),
00655 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
00656 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1),
00657 GTK_SHADOW_IN);
00658
00659 hbox1 = gtk_hbox_new (TRUE, 0);
00660 gtk_box_pack_start (GTK_BOX (vbox10), hbox1, FALSE, FALSE, 0);
00661
00662 button4 = gtk_button_new ();
00663 gtk_box_pack_start (GTK_BOX (hbox1), button4, FALSE, TRUE, 0);
00664
00665 image8 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_BUTTON);
00666 gtk_container_add (GTK_CONTAINER (button4), image8);
00667
00668 button5 = gtk_button_new ();
00669 gtk_box_pack_start (GTK_BOX (hbox1), button5, FALSE, TRUE, 0);
00670
00671 image9 = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_BUTTON);
00672 gtk_container_add (GTK_CONTAINER (button5), image9);
00673
00674 button6 = gtk_button_new ();
00675 gtk_box_pack_start (GTK_BOX (hbox1), button6, FALSE, TRUE, 0);
00676
00677 image10 = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_BUTTON);
00678 gtk_container_add (GTK_CONTAINER (button6), image10);
00679
00680 button7 = gtk_button_new ();
00681 gtk_box_pack_start (GTK_BOX (hbox1), button7, FALSE, TRUE, 0);
00682
00683 image11 = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_BUTTON);
00684 gtk_container_add (GTK_CONTAINER (button7), image11);
00685
00686 Layer_label = gtk_label_new (_("Layers"));
00687 gtk_notebook_set_tab_label (GTK_NOTEBOOK (sidepane_notebook),
00688 gtk_notebook_get_nth_page (GTK_NOTEBOOK (sidepane_notebook), 0),
00689 Layer_label);
00690
00691 vbox11 = gtk_vbox_new (FALSE, 2);
00692 gtk_container_add (GTK_CONTAINER (sidepane_notebook), vbox11);
00693 gtk_container_set_border_width (GTK_CONTAINER (vbox11), 3);
00694
00695 messages_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
00696 gtk_box_pack_start (GTK_BOX (vbox11), messages_scrolledwindow, TRUE, TRUE, 0);
00697 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (messages_scrolledwindow),
00698 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
00699
00700 message_textview = gtk_text_view_new ();
00701 gtk_container_add (GTK_CONTAINER (messages_scrolledwindow), message_textview);
00702 gtk_text_view_set_editable (GTK_TEXT_VIEW (message_textview), FALSE);
00703 gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (message_textview), GTK_WRAP_WORD);
00704 gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (message_textview), FALSE);
00705
00706 clear_messages_button = gtk_button_new_from_stock ("gtk-clear");
00707 gtk_box_pack_start (GTK_BOX (vbox11), clear_messages_button, FALSE, FALSE, 0);
00708
00709 Message_label = gtk_label_new (_("Messages"));
00710 gtk_notebook_set_tab_label (GTK_NOTEBOOK (sidepane_notebook),
00711 gtk_notebook_get_nth_page (GTK_NOTEBOOK (sidepane_notebook), 1),
00712 Message_label);
00713
00714 vbox2 = gtk_vbox_new (FALSE, 4);
00715 gtk_paned_pack2 (GTK_PANED (hpaned1), vbox2, TRUE, FALSE);
00716 gtk_container_set_border_width (GTK_CONTAINER (vbox2), 4);
00717
00718 main_view_table = gtk_table_new (3, 3, FALSE);
00719 gtk_box_pack_start (GTK_BOX (vbox2), main_view_table, TRUE, TRUE, 0);
00720
00721 hRuler = gtk_hruler_new ();
00722 gtk_table_attach (GTK_TABLE (main_view_table), hRuler, 1, 2, 0, 1,
00723 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
00724 (GtkAttachOptions) (GTK_FILL), 0, 0);
00725 gtk_ruler_set_range (GTK_RULER (hRuler), 0, 100, 8.56051, 1000);
00726
00727 vRuler = gtk_vruler_new ();
00728 gtk_table_attach (GTK_TABLE (main_view_table), vRuler, 0, 1, 1, 2,
00729 (GtkAttachOptions) (GTK_FILL),
00730 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
00731 gtk_ruler_set_range (GTK_RULER (vRuler), 0, 100, 8.37341, 1000);
00732
00733 drawingarea = gtk_drawing_area_new();
00734 gtk_table_attach (GTK_TABLE (main_view_table), drawingarea, 1, 2, 1, 2,
00735 (GtkAttachOptions) (GTK_FILL),
00736 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
00737
00738 hAdjustment = (GtkWidget *) gtk_adjustment_new (0.0, -1000.0, 1000.0, 1000.0, 1000.0, 500.0);
00739 vAdjustment = (GtkWidget *) gtk_adjustment_new (0.0, -1000.0, 1000.0, 1000.0, 1000.0, 500.0);
00740
00741 hScrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (hAdjustment));
00742 gtk_table_attach (GTK_TABLE (main_view_table), hScrollbar, 1, 2, 2, 3,
00743 (GtkAttachOptions) (GTK_FILL),
00744 (GtkAttachOptions) (GTK_FILL), 0, 0);
00745
00746 vScrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (vAdjustment));
00747 gtk_table_attach (GTK_TABLE (main_view_table), vScrollbar, 2, 3, 1, 2,
00748 (GtkAttachOptions) (GTK_FILL),
00749 (GtkAttachOptions) (GTK_FILL), 0, 0);
00750
00751 GtkWidget *frame1 = gtk_frame_new (NULL);
00752 gtk_box_pack_start (GTK_BOX (vbox2), frame1, FALSE, FALSE, 0);
00753
00754 hbox5 = gtk_hbox_new (FALSE, 10);
00755 gtk_container_add (GTK_CONTAINER(frame1), hbox5);
00756
00757 statusbar_label_left = gtk_label_new (_("( 0.0, 0.0 )"));
00758 gtk_box_pack_start (GTK_BOX (hbox5), statusbar_label_left, FALSE, FALSE, 0);
00759 gtk_widget_set_size_request (statusbar_label_left, 130, -1);
00760 gtk_label_set_justify ((GtkLabel *) statusbar_label_left, GTK_JUSTIFY_RIGHT);
00761
00762 combobox2 = gtk_combo_box_new_text ();
00763 gtk_box_pack_start (GTK_BOX (hbox5), combobox2, FALSE, FALSE, 0);
00764 gtk_combo_box_append_text (GTK_COMBO_BOX (combobox2), _("mil"));
00765 gtk_combo_box_append_text (GTK_COMBO_BOX (combobox2), _("mm"));
00766 gtk_combo_box_append_text (GTK_COMBO_BOX (combobox2), _("in"));
00767
00768 statusbar_label_right = gtk_label_new (_(""));
00769 gtk_box_pack_start (GTK_BOX (hbox5), statusbar_label_right, TRUE, TRUE, 0);
00770 gtk_label_set_ellipsize ((GtkLabel *)statusbar_label_right, PANGO_ELLIPSIZE_END);
00771 gtk_misc_set_alignment (GTK_MISC (statusbar_label_right), 0, 0.5);
00772
00773
00774
00775
00776
00777
00778
00779
00780 g_signal_connect ((gpointer) new, "activate",
00781 G_CALLBACK (callbacks_new_activate),
00782 NULL);
00783 g_signal_connect ((gpointer) open_project, "activate",
00784 G_CALLBACK (callbacks_open_project_activate),
00785 NULL);
00786 g_signal_connect ((gpointer) open_layer, "activate",
00787 G_CALLBACK (callbacks_open_layer_activate),
00788 NULL);
00789 g_signal_connect ((gpointer) revert, "activate",
00790 G_CALLBACK (callbacks_revert_activate),
00791 NULL);
00792 g_signal_connect ((gpointer) save_layer, "activate",
00793 G_CALLBACK (callbacks_save_layer_activate),
00794 NULL);
00795 g_signal_connect ((gpointer) save_as_layer, "activate",
00796 G_CALLBACK (callbacks_generic_save_activate),
00797 (gpointer) CALLBACKS_SAVE_LAYER_AS);
00798 g_signal_connect ((gpointer) save, "activate",
00799 G_CALLBACK (callbacks_save_project_activate),
00800 NULL);
00801 g_signal_connect ((gpointer) save_as, "activate",
00802 G_CALLBACK (callbacks_generic_save_activate),
00803 (gpointer) CALLBACKS_SAVE_PROJECT_AS);
00804 #ifdef EXPORT_PNG
00805 g_signal_connect ((gpointer) png, "activate",
00806 G_CALLBACK (callbacks_generic_save_activate),
00807 (gpointer) CALLBACKS_SAVE_FILE_PNG);
00808 #endif
00809
00810 #ifndef RENDER_USING_GDK
00811 g_signal_connect ((gpointer) pdf, "activate",
00812 G_CALLBACK (callbacks_generic_save_activate),
00813 (gpointer) CALLBACKS_SAVE_FILE_PDF);
00814 g_signal_connect ((gpointer) svg, "activate",
00815 G_CALLBACK (callbacks_generic_save_activate),
00816 (gpointer) CALLBACKS_SAVE_FILE_SVG);
00817 g_signal_connect ((gpointer) postscript, "activate",
00818 G_CALLBACK (callbacks_generic_save_activate),
00819 (gpointer) CALLBACKS_SAVE_FILE_PS);
00820 g_signal_connect ((gpointer) rs274x, "activate",
00821 G_CALLBACK (callbacks_generic_save_activate),
00822 (gpointer) CALLBACKS_SAVE_FILE_RS274X);
00823 g_signal_connect ((gpointer) drill, "activate",
00824 G_CALLBACK (callbacks_generic_save_activate),
00825 (gpointer) CALLBACKS_SAVE_FILE_DRILL);
00826
00827 #if GTK_CHECK_VERSION(2,10,0)
00828 g_signal_connect ((gpointer) print, "activate",
00829 G_CALLBACK (callbacks_print_activate),
00830 NULL);
00831 #endif
00832 #endif
00833 g_signal_connect ((gpointer) quit, "activate",
00834 G_CALLBACK (callbacks_quit_activate),
00835 NULL);
00836
00837
00838 g_signal_connect ((gpointer) delete_selected, "activate",
00839 G_CALLBACK (callbacks_delete_objects_clicked),
00840 NULL);
00841
00842
00843 g_signal_connect ((gpointer) zoom_in, "activate",
00844 G_CALLBACK (callbacks_zoom_in_activate),
00845 NULL);
00846 g_signal_connect ((gpointer) zoom_out, "activate",
00847 G_CALLBACK (callbacks_zoom_out_activate),
00848 NULL);
00849 g_signal_connect ((gpointer) fit_to_window, "activate",
00850 G_CALLBACK (callbacks_fit_to_window_activate),
00851 NULL);
00852
00853
00854 g_signal_connect ((gpointer) analyze_active_gerbers, "activate",
00855 G_CALLBACK (callbacks_analyze_active_gerbers_activate),
00856 NULL);
00857 g_signal_connect ((gpointer) analyze_active_drill, "activate",
00858 G_CALLBACK (callbacks_analyze_active_drill_activate),
00859 NULL);
00860 g_signal_connect ((gpointer) analyze_display_selected_obj_props, "activate",
00861 G_CALLBACK (callbacks_display_object_properties_clicked),
00862 NULL);
00863
00864
00865
00866
00867
00868
00869
00870
00871
00872 #ifndef RENDER_USING_GDK
00873 g_signal_connect ((gpointer) pointer_tool, "activate",
00874 G_CALLBACK (callbacks_change_tool), (gpointer) 0);
00875 #endif
00876 g_signal_connect ((gpointer) pan_tool, "activate",
00877 G_CALLBACK (callbacks_change_tool), (gpointer) 1);
00878 g_signal_connect ((gpointer) zoom_tool, "activate",
00879 G_CALLBACK (callbacks_change_tool), (gpointer) 2);
00880 g_signal_connect ((gpointer) measure_tool, "activate",
00881 G_CALLBACK (callbacks_change_tool), (gpointer) 3);
00882
00883
00884
00885
00886
00887
00888
00889 g_signal_connect ((gpointer) about, "activate",
00890 G_CALLBACK (callbacks_about_activate),
00891 NULL);
00892
00893
00894 g_signal_connect ((gpointer) toolbutton_new, "clicked",
00895 G_CALLBACK (callbacks_new_activate),
00896 NULL);
00897 g_signal_connect ((gpointer) toolbutton_save, "clicked",
00898 G_CALLBACK (callbacks_save_layer_activate),
00899 NULL);
00900 g_signal_connect ((gpointer) toolbutton_open, "clicked",
00901 G_CALLBACK (callbacks_open_layer_activate),
00902 NULL);
00903 g_signal_connect ((gpointer) toolbutton_revert, "clicked",
00904 G_CALLBACK (callbacks_revert_activate),
00905 NULL);
00906 g_signal_connect ((gpointer) clear_messages_button, "clicked",
00907 G_CALLBACK (callbacks_clear_messages_button_clicked),
00908 NULL);
00909 #ifndef RENDER_USING_GDK
00910 #if GTK_CHECK_VERSION(2,10,0)
00911 g_signal_connect ((gpointer) toolbutton_print, "clicked",
00912 G_CALLBACK (callbacks_print_activate),
00913 NULL);
00914 #endif
00915 #endif
00916 g_signal_connect ((gpointer) toolbutton_zoom_in, "clicked",
00917 G_CALLBACK (callbacks_zoom_in_activate),
00918 NULL);
00919 g_signal_connect ((gpointer) toolbutton_zoom_out, "clicked",
00920 G_CALLBACK (callbacks_zoom_out_activate),
00921 NULL);
00922 g_signal_connect ((gpointer) toolbutton_zoom_fit, "clicked",
00923 G_CALLBACK (callbacks_fit_to_window_activate),
00924 NULL);
00925 #ifndef RENDER_USING_GDK
00926 g_signal_connect ((gpointer) toggletoolbutton_pointer, "clicked",
00927 G_CALLBACK (callbacks_change_tool), (gpointer) 0);
00928 #endif
00929 g_signal_connect ((gpointer) toggletoolbutton_pan, "clicked",
00930 G_CALLBACK (callbacks_change_tool), (gpointer) 1);
00931 g_signal_connect ((gpointer) toggletoolbutton_zoom, "clicked",
00932 G_CALLBACK (callbacks_change_tool), (gpointer) 2);
00933 g_signal_connect ((gpointer) toggletoolbutton_measure, "clicked",
00934 G_CALLBACK (callbacks_change_tool), (gpointer) 3);
00935
00936 g_signal_connect ((gpointer) combobox2, "changed",
00937 G_CALLBACK (callbacks_statusbar_unit_combo_box_changed),
00938 NULL);
00939
00940 g_signal_connect ((gpointer) button4, "clicked",
00941 G_CALLBACK (callbacks_add_layer_button_clicked), NULL);
00942 g_signal_connect ((gpointer) button7, "clicked",
00943 G_CALLBACK (callbacks_remove_layer_button_clicked), NULL);
00944 g_signal_connect ((gpointer) button5, "clicked",
00945 G_CALLBACK (callbacks_move_layer_down_button_clicked), NULL);
00946 g_signal_connect ((gpointer) button6, "clicked",
00947 G_CALLBACK (callbacks_move_layer_up_clicked), NULL);
00948
00949 g_signal_connect ((gpointer) hAdjustment, "value-changed",
00950 G_CALLBACK (callbacks_hadjustment_value_changed), NULL);
00951 g_signal_connect ((gpointer) vAdjustment, "value-changed",
00952 G_CALLBACK (callbacks_vadjustment_value_changed), NULL);
00953 g_signal_connect ((gpointer) hScrollbar, "button-press-event",
00954 G_CALLBACK (callbacks_scrollbar_button_pressed), NULL);
00955 g_signal_connect ((gpointer) hScrollbar, "button-release-event",
00956 G_CALLBACK (callbacks_scrollbar_button_released), NULL);
00957 g_signal_connect ((gpointer) vScrollbar, "button-press-event",
00958 G_CALLBACK (callbacks_scrollbar_button_pressed), NULL);
00959 g_signal_connect ((gpointer) vScrollbar, "button-release-event",
00960 G_CALLBACK (callbacks_scrollbar_button_released), NULL);
00961
00962
00963 if (screen.unit == GERBV_MILS)
00964 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox2), 0);
00965 else if (screen.unit == GERBV_MMS)
00966 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox2), 1);
00967 else
00968 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox2), 2);
00969
00970 gint width, height;
00971
00972 gtk_window_add_accel_group (GTK_WINDOW (mainWindow), accel_group);
00973
00974 GtkListStore *list_store;
00975
00976 list_store = gtk_list_store_new (4, G_TYPE_BOOLEAN,
00977 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING);
00978
00979 GtkWidget *tree;
00980
00981 tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));
00982 GtkCellRenderer *renderer;
00983 GtkTreeViewColumn *column;
00984
00985 renderer = gtk_cell_renderer_toggle_new ();
00986 column = gtk_tree_view_column_new_with_attributes ("Visible",
00987 renderer,
00988 "active", 0,
00989 NULL);
00990 gtk_tree_view_column_set_min_width ((GtkTreeViewColumn *)column,25);
00991 gtk_signal_connect(GTK_OBJECT(renderer), "toggled",
00992 GTK_SIGNAL_FUNC(callbacks_layer_tree_visibility_button_toggled), NULL);
00993
00994 gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
00995
00996 renderer = gtk_cell_renderer_pixbuf_new ();
00997 column = gtk_tree_view_column_new_with_attributes ("Color",
00998 renderer,
00999 "pixbuf", 1, NULL);
01000 gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
01001
01002 renderer = gtk_cell_renderer_text_new ();
01003 g_object_set (G_OBJECT (renderer), "foreground", "red", "xalign", 0.5,
01004 "family", "Times", "size-points", 12.0, NULL);
01005 column = gtk_tree_view_column_new_with_attributes ("Modified",
01006 renderer,
01007 "text", 3,
01008 NULL);
01009 gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
01010 gtk_tree_view_column_set_min_width ((GtkTreeViewColumn *)column,20);
01011
01012 renderer = gtk_cell_renderer_text_new ();
01013 column = gtk_tree_view_column_new_with_attributes ("Name",
01014 renderer,
01015 "markup", 2,
01016 NULL);
01017 gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
01018
01019 gtk_tree_view_set_headers_visible ((GtkTreeView *)tree, FALSE);
01020 gtk_signal_connect(GTK_OBJECT(tree), "button-press-event",
01021 GTK_SIGNAL_FUNC(callbacks_layer_tree_button_press), NULL);
01022 gtk_container_add (GTK_CONTAINER (scrolledwindow1), tree);
01023
01024 GtkTreeSelection *selection;
01025 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
01026 gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
01027 gtk_tree_view_set_enable_search (GTK_TREE_VIEW (tree), FALSE);
01028 gtk_tree_view_set_reorderable (GTK_TREE_VIEW (tree), TRUE);
01029
01030 g_signal_connect (G_OBJECT(list_store), "row-inserted",
01031 G_CALLBACK (callbacks_layer_tree_row_inserted), NULL);
01032
01033 gtk_widget_grab_focus (tree);
01034
01035
01036
01037 gtk_signal_connect(GTK_OBJECT(drawingarea), "expose_event",
01038 GTK_SIGNAL_FUNC(callbacks_drawingarea_expose_event), NULL);
01039 gtk_signal_connect(GTK_OBJECT(drawingarea),"configure_event",
01040 GTK_SIGNAL_FUNC(callbacks_drawingarea_configure_event), NULL);
01041 gtk_signal_connect(GTK_OBJECT(drawingarea), "motion_notify_event",
01042 GTK_SIGNAL_FUNC(callbacks_drawingarea_motion_notify_event), NULL);
01043 gtk_signal_connect(GTK_OBJECT(drawingarea), "button_press_event",
01044 GTK_SIGNAL_FUNC(callbacks_drawingarea_button_press_event), NULL);
01045 gtk_signal_connect(GTK_OBJECT(drawingarea), "button_release_event",
01046 GTK_SIGNAL_FUNC(callbacks_drawingarea_button_release_event), NULL);
01047 gtk_signal_connect_after(GTK_OBJECT(mainWindow), "key_press_event",
01048 GTK_SIGNAL_FUNC(callbacks_window_key_press_event), NULL);
01049 gtk_signal_connect_after(GTK_OBJECT(mainWindow), "key_release_event",
01050 GTK_SIGNAL_FUNC(callbacks_window_key_release_event), NULL);
01051 gtk_signal_connect_after(GTK_OBJECT(mainWindow), "scroll_event",
01052 GTK_SIGNAL_FUNC(callbacks_window_scroll_event), NULL);
01053 gtk_signal_connect_after(GTK_OBJECT(mainWindow), "delete_event",
01054 GTK_SIGNAL_FUNC(callbacks_quit_activate), NULL);
01055
01056 gtk_widget_set_events(drawingarea, GDK_EXPOSURE_MASK
01057 | GDK_LEAVE_NOTIFY_MASK
01058 | GDK_ENTER_NOTIFY_MASK
01059 | GDK_BUTTON_PRESS_MASK
01060 | GDK_BUTTON_RELEASE_MASK
01061 | GDK_KEY_PRESS_MASK
01062 | GDK_KEY_RELEASE_MASK
01063 | GDK_POINTER_MOTION_MASK
01064 | GDK_POINTER_MOTION_HINT_MASK
01065 | GDK_SCROLL_MASK
01066 );
01067
01068
01069
01070
01071 #if !defined (__MINGW32__)
01072 g_log_set_handler (NULL,
01073 G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION | G_LOG_LEVEL_MASK,
01074 callbacks_handle_log_messages, NULL);
01075 #endif
01076
01077
01078
01079
01080
01081 GdkColor zoom_outline_color = {0, 50000, 50000, 50000};
01082 GdkColor dist_measure_color = {0, 60000, 30000, 65000};
01083 GdkColor selection_color = {0, 65000, 65000, 65000};
01084
01085 screen.zoom_outline_color = zoom_outline_color;
01086 screen.dist_measure_color = dist_measure_color;
01087 screen.selection_color = selection_color;
01088
01089 screen.drawing_area = drawingarea;
01090 screen.win.hAdjustment = hAdjustment;
01091 screen.win.vAdjustment = vAdjustment;
01092 screen.win.hRuler = hRuler;
01093 screen.win.vRuler = vRuler;
01094 screen.win.sidepane_notebook = sidepane_notebook;
01095 #ifndef RENDER_USING_GDK
01096 screen.win.toolButtonPointer = toggletoolbutton_pointer;
01097 #endif
01098 screen.win.toolButtonPan = toggletoolbutton_pan;
01099 screen.win.toolButtonZoom = toggletoolbutton_zoom;
01100 screen.win.toolButtonMeasure = toggletoolbutton_measure;
01101
01102
01103 screen.win.layerTreePopupMenu = gtk_menu_new ();
01104 tempMenuItem = gtk_image_menu_item_new_with_label ("Invert layer color");
01105 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01106 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Invert the display polarity of the layer", NULL);
01107 g_signal_connect ((gpointer) tempMenuItem, "activate",
01108 G_CALLBACK (callbacks_invert_layer_clicked), NULL);
01109
01110 tempMenuItem = gtk_image_menu_item_new_with_label ("Change color");
01111 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01112 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Change the display color of the layer", NULL);
01113 g_signal_connect ((gpointer) tempMenuItem, "activate",
01114 G_CALLBACK (callbacks_change_layer_color_clicked), NULL);
01115
01116 tempMenuItem = gtk_image_menu_item_new_with_label ("Reload layer");
01117 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01118 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Reload the layer from disk",
01119 NULL);
01120 g_signal_connect ((gpointer) tempMenuItem, "activate",
01121 G_CALLBACK (callbacks_reload_layer_clicked), NULL);
01122
01123 tempMenuItem = gtk_image_menu_item_new_with_label ("Edit file format");
01124 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01125 gtk_tooltips_set_tip (tooltips, tempMenuItem, "View and edit the numerical format used to parse this layer",
01126 NULL);
01127 g_signal_connect ((gpointer) tempMenuItem, "activate",
01128 G_CALLBACK (callbacks_change_layer_format_clicked), NULL);
01129
01130 tempMenuItem = gtk_image_menu_item_new_with_label ("Add layer");
01131 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01132 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Open a new layer and insert it here", NULL);
01133 tempImage = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
01134 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (tempMenuItem), tempImage);
01135 g_signal_connect ((gpointer) tempMenuItem, "activate",
01136 G_CALLBACK (callbacks_add_layer_button_clicked), NULL);
01137
01138 tempMenuItem = gtk_image_menu_item_new_with_label ("Move layer down");
01139 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01140 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Move the layer down one in the layer list", NULL);
01141 tempImage = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_MENU);
01142 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (tempMenuItem), tempImage);
01143 g_signal_connect ((gpointer) tempMenuItem, "activate",
01144 G_CALLBACK (callbacks_move_layer_down_button_clicked), NULL);
01145
01146 tempMenuItem = gtk_image_menu_item_new_with_label ("Move layer up");
01147 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01148 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Move the layer up one in the layer list", NULL);
01149 tempImage = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_MENU);
01150 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (tempMenuItem), tempImage);
01151 g_signal_connect ((gpointer) tempMenuItem, "activate",
01152 G_CALLBACK (callbacks_move_layer_up_clicked), NULL);
01153
01154 tempMenuItem = gtk_image_menu_item_new_with_label ("Delete layer");
01155 gtk_menu_shell_append ((GtkMenuShell *)screen.win.layerTreePopupMenu, tempMenuItem);
01156 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Remove this layer", NULL);
01157 tempImage = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_MENU);
01158 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (tempMenuItem), tempImage);
01159 g_signal_connect ((gpointer) tempMenuItem, "activate",
01160 G_CALLBACK (callbacks_remove_layer_button_clicked), NULL);
01161
01162 gtk_widget_show_all (screen.win.layerTreePopupMenu);
01163
01164
01165 screen.win.drawWindowPopupMenu = gtk_menu_new ();
01166 tempMenuItem = gtk_image_menu_item_new_with_label ("Display object properties");
01167 gtk_menu_shell_append ((GtkMenuShell *)screen.win.drawWindowPopupMenu, tempMenuItem);
01168 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Examine the properties of the selected object", NULL);
01169 tempImage = gtk_image_new_from_stock ("gtk-info", GTK_ICON_SIZE_MENU);
01170 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (tempMenuItem), tempImage);
01171 g_signal_connect ((gpointer) tempMenuItem, "activate",
01172 G_CALLBACK (callbacks_display_object_properties_clicked), NULL);
01173
01174
01175
01176
01177
01178
01179
01180
01181
01182
01183
01184
01185
01186
01187
01188
01189
01190
01191
01192
01193
01194 tempMenuItem = gtk_image_menu_item_new_with_label ("Delete selected objects");
01195 gtk_menu_shell_append ((GtkMenuShell *)screen.win.drawWindowPopupMenu, tempMenuItem);
01196 gtk_tooltips_set_tip (tooltips, tempMenuItem, "Delete the selected object(s)",NULL);
01197 tempImage = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_MENU);
01198 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (tempMenuItem), tempImage);
01199 g_signal_connect ((gpointer) tempMenuItem, "activate",
01200 G_CALLBACK (callbacks_delete_objects_clicked), NULL);
01201
01202 gtk_widget_show_all (screen.win.drawWindowPopupMenu);
01203
01204
01205 gtk_tooltips_enable (tooltips);
01206
01207
01208
01209 if ((req_width != -1) && (req_height != -1)) {
01210 width = req_width;
01211 height = req_height;
01212 }
01213 else {
01214 GdkScreen *screen;
01215 int nmonitors;
01216
01217 screen = gdk_screen_get_default();
01218 nmonitors = gdk_screen_get_n_monitors(screen);
01219
01220 width = gdk_screen_get_width(screen) * 3/4 / nmonitors;
01221 height = gdk_screen_get_height(screen) * 3/4 / nmonitors;
01222 }
01223
01224 gtk_window_set_default_size((GtkWindow *)mainWindow, width, height);
01225
01226 gtk_widget_show_all (mainWindow);
01227 screen.win.topLevelWindow = mainWindow;
01228 screen.win.messageTextView = message_textview;
01229 screen.win.statusMessageLeft = statusbar_label_left;
01230 screen.win.statusMessageRight = statusbar_label_right;
01231 screen.win.statusUnitComboBox = combobox2;
01232 screen.win.layerTree = tree;
01233 screen.win.treeIsUpdating = FALSE;
01234
01235 screen.selectionInfo.selectedNodeArray = g_array_new (FALSE,
01236 FALSE, sizeof(gerbv_selection_item_t));
01237
01238 callbacks_change_tool (NULL, (gpointer) 0);
01239
01240 rename_main_window("",mainWindow);
01241
01242 set_window_icon (mainWindow);
01243 callbacks_update_layer_tree ();
01244
01245
01246
01247 g_signal_connect ((gpointer) render_combobox, "changed",
01248 G_CALLBACK (callbacks_sidepane_render_type_combo_box_changed),
01249 NULL);
01250 gtk_main();
01251 }
01252
01253
01254 void
01255 interface_set_render_type (int t)
01256 {
01257 #ifdef RENDER_USING_GDK
01258 if (t >= 2)
01259 #else
01260 if (t >= 4)
01261 #endif
01262 return;
01263
01264 screenRenderInfo.renderType = t;
01265
01266
01267
01268
01269 if (render_combobox)
01270 gtk_combo_box_set_active (GTK_COMBO_BOX (render_combobox), t);
01271 }
01272
01273
01282 gboolean
01283 interface_get_alert_dialog_response (gchar *primaryText, gchar *secondaryText,
01284 gboolean show_checkbox, gboolean *ask_to_show_again )
01285
01286
01287 {
01288
01289
01290 GtkWidget *dialog1;
01291 GtkWidget *dialog_vbox1;
01292 GtkWidget *hbox1;
01293 GtkWidget *image1;
01294 GtkWidget *label1;
01295 GtkWidget *checkbox=NULL;
01296 GtkWidget *dialog_action_area1;
01297 GtkWidget *cancelbutton1;
01298 GtkWidget *okbutton1;
01299 gboolean returnVal = FALSE;
01300
01301 dialog1 = gtk_dialog_new ();
01302 gtk_container_set_border_width (GTK_CONTAINER (dialog1), 6);
01303 gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);
01304 gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);
01305 gtk_dialog_set_has_separator (GTK_DIALOG (dialog1), FALSE);
01306
01307 dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
01308
01309 hbox1 = gtk_hbox_new (FALSE, 12);
01310 gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox1, TRUE, TRUE, 0);
01311 gtk_container_set_border_width (GTK_CONTAINER (hbox1), 6);
01312
01313 image1 = gtk_image_new_from_icon_name ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG);
01314 gtk_box_pack_start (GTK_BOX (hbox1), image1, TRUE, TRUE, 0);
01315 gtk_misc_set_alignment (GTK_MISC (image1), 0.5, 0);
01316
01317 gchar *labelMessage = g_strconcat ("<span weight=\"bold\" size=\"larger\">",primaryText,
01318 "</span>\n<span/>\n",secondaryText,NULL);
01319 label1 = gtk_label_new (labelMessage);
01320 g_free (labelMessage);
01321 GtkWidget *vbox9 = gtk_vbox_new (FALSE, 0);
01322 gtk_box_pack_start (GTK_BOX (vbox9), label1, FALSE, FALSE, 0);
01323 gtk_box_pack_start (GTK_BOX (hbox1), vbox9, FALSE, FALSE, 0);
01324 gtk_label_set_use_markup (GTK_LABEL (label1), TRUE);
01325 gtk_label_set_line_wrap (GTK_LABEL (label1), TRUE);
01326
01327
01328
01329 GtkWidget *hbox2 = gtk_hbox_new (FALSE, 12);
01330 if (show_checkbox) {
01331 GtkWidget *label3 = gtk_label_new (" ");
01332
01333 checkbox = gtk_check_button_new_with_label("Do not show this dialog again.");
01334 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(checkbox), FALSE);
01335 gtk_box_pack_start (GTK_BOX (hbox2), label3, FALSE, FALSE, 0);
01336 gtk_box_pack_start (GTK_BOX (hbox2), checkbox, FALSE, FALSE, 0);
01337 }
01338 gtk_box_pack_start (GTK_BOX (vbox9), hbox2, FALSE, FALSE, 12);
01339
01340 dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;
01341 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
01342
01343 cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel");
01344 gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), cancelbutton1, GTK_RESPONSE_CANCEL);
01345 GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT);
01346 gtk_widget_grab_default (cancelbutton1);
01347 gtk_widget_grab_focus (cancelbutton1);
01348
01349 okbutton1 = gtk_button_new_from_stock ("gtk-ok");
01350 gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), okbutton1, GTK_RESPONSE_OK);
01351 GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT);
01352
01353 gtk_widget_show_all (dialog1);
01354
01355 if (gtk_dialog_run ((GtkDialog*)dialog1) == GTK_RESPONSE_OK) {
01356
01357 if ((show_checkbox == TRUE) &&
01358 (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox)) == TRUE)) {
01359
01360
01361 *ask_to_show_again = FALSE;
01362 }
01363 returnVal = TRUE;
01364 }
01365 gtk_widget_destroy (dialog1);
01366
01367 return returnVal;
01368 }
01369
01370
01371
01372
01378 void
01379 interface_show_alert_dialog (gchar *primaryText, gchar *secondaryText,
01380 gboolean show_checkbox, gboolean *ask_to_show_again )
01381
01382 {
01383
01384
01385 GtkWidget *dialog1;
01386 GtkWidget *dialog_vbox1;
01387 GtkWidget *hbox1;
01388 GtkWidget *image1;
01389 GtkWidget *label1;
01390 GtkWidget *checkbox=NULL;
01391 GtkWidget *dialog_action_area1;
01392 GtkWidget *okbutton1;
01393
01394 dialog1 = gtk_dialog_new ();
01395 gtk_container_set_border_width (GTK_CONTAINER (dialog1), 6);
01396 gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);
01397 gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);
01398 gtk_dialog_set_has_separator (GTK_DIALOG (dialog1), FALSE);
01399
01400 dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
01401
01402 hbox1 = gtk_hbox_new (FALSE, 12);
01403 gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox1, TRUE, TRUE, 0);
01404 gtk_container_set_border_width (GTK_CONTAINER (hbox1), 6);
01405
01406 image1 = gtk_image_new_from_icon_name ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG);
01407 gtk_box_pack_start (GTK_BOX (hbox1), image1, TRUE, TRUE, 0);
01408 gtk_misc_set_alignment (GTK_MISC (image1), 0.5, 0);
01409
01410 gchar *labelMessage = g_strconcat ("<span weight=\"bold\" size=\"larger\">",primaryText,
01411 "</span>\n<span/>\n",secondaryText,NULL);
01412 label1 = gtk_label_new (labelMessage);
01413 g_free (labelMessage);
01414
01415 GtkWidget *vbox9 = gtk_vbox_new (FALSE, 0);
01416 gtk_box_pack_start (GTK_BOX (vbox9), label1, FALSE, FALSE, 0);
01417 gtk_label_set_use_markup (GTK_LABEL (label1), TRUE);
01418 gtk_label_set_line_wrap (GTK_LABEL (label1), TRUE);
01419 gtk_box_pack_start (GTK_BOX (hbox1), vbox9, FALSE, FALSE, 0);
01420
01421 GtkWidget *hbox2 = gtk_hbox_new (FALSE, 12);
01422 if (show_checkbox) {
01423 GtkWidget *label3 = gtk_label_new (" ");
01424
01425 checkbox = gtk_check_button_new_with_label("Do not show this dialog again.");
01426 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(checkbox), FALSE);
01427 gtk_box_pack_start (GTK_BOX (hbox2), label3, FALSE, FALSE, 0);
01428 gtk_box_pack_start (GTK_BOX (hbox2), checkbox, FALSE, FALSE, 0);
01429 }
01430 gtk_box_pack_start (GTK_BOX (vbox9), hbox2, FALSE, FALSE, 12);
01431
01432 dialog_action_area1 = GTK_DIALOG (dialog1)->action_area;
01433 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
01434
01435 okbutton1 = gtk_button_new_from_stock ("gtk-ok");
01436 gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), okbutton1, GTK_RESPONSE_OK);
01437 GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT);
01438
01439 gtk_widget_show_all (dialog1);
01440
01441
01442 if ((show_checkbox == TRUE) &&
01443 (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox)) == TRUE)) {
01444
01445
01446 *ask_to_show_again = FALSE;
01447 }
01448
01449 gtk_dialog_run (GTK_DIALOG(dialog1));
01450 gtk_widget_destroy (dialog1);
01451
01452 return;
01453 }
01454
01455
01456