PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ pgui_create_main_window()

static void pgui_create_main_window ( const SHPCONNECTIONCONFIG conn)
static

Definition at line 3283 of file shp2pgsql-gui.c.

3284{
3285 /* Main widgets */
3286 GtkWidget *vbox_main, *vbox_loader, *vbox_dumper;
3287
3288 /* PgSQL section */
3289 GtkWidget *frame_pg, *import_list_frame, *export_list_frame, *frame_log;
3290 GtkWidget *button_pg_conn;
3291
3292 /* Notebook */
3293 GtkWidget *notebook;
3294
3295 /* Button section */
3296 GtkWidget *loader_hbox_buttons, *loader_button_options, *loader_button_import, *loader_button_cancel, *loader_button_about;
3297 GtkWidget *dumper_hbox_buttons, *dumper_button_options, *dumper_button_export, *dumper_button_cancel, *dumper_button_about;
3298
3299 /* Log section */
3300 GtkWidget *scrolledwindow_log;
3301
3302 /* Create the main top level window with a 10px border */
3303 window_main = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3304 gtk_container_set_border_width(GTK_CONTAINER(window_main), 10);
3305 gtk_window_set_title(GTK_WINDOW(window_main), _("PostGIS Shapefile Import/Export Manager"));
3306 gtk_window_set_position(GTK_WINDOW(window_main), GTK_WIN_POS_CENTER_ALWAYS);
3307 gtk_window_set_resizable(GTK_WINDOW(window_main), FALSE);
3308
3309 /* Open it a bit wider so that both the label and title show up */
3310 gtk_window_set_default_size(GTK_WINDOW(window_main), 180, 500);
3311
3312 /* Connect the destroy event of the window with our pgui_quit function
3313 * When the window is about to be destroyed we get a notificaiton and
3314 * stop the main GTK loop
3315 */
3316 g_signal_connect(G_OBJECT(window_main), "destroy", G_CALLBACK(pgui_quit), NULL);
3317
3318 /* Connection row */
3319 frame_pg = gtk_frame_new(_("PostGIS Connection"));
3320
3321 /* Test button row */
3322 button_pg_conn = gtk_button_new_with_label(_("View connection details..."));
3323 g_signal_connect(G_OBJECT(button_pg_conn), "clicked", G_CALLBACK(pgui_action_connection_details), NULL);
3324 gtk_container_set_border_width(GTK_CONTAINER(button_pg_conn), 10);
3325 gtk_container_add(GTK_CONTAINER(frame_pg), button_pg_conn);
3326
3327 /*
3328 * GTK Notebook for selecting import/export
3329 */
3330 notebook = gtk_notebook_new();
3331
3332 /*
3333 ** Shape file selector
3334 */
3335 import_list_frame = gtk_frame_new(_("Import List"));
3336 pgui_create_import_file_table(import_list_frame);
3337
3338 /*
3339 ** Row of action buttons
3340 */
3341 loader_hbox_buttons = gtk_hbox_new(TRUE, 15);
3342 gtk_container_set_border_width (GTK_CONTAINER (loader_hbox_buttons), 0);
3343
3344 /* Create the buttons themselves */
3345 loader_button_options = gtk_button_new_with_label(_("Options..."));
3346 loader_button_import = gtk_button_new_with_label(_("Import"));
3347 loader_button_cancel = gtk_button_new_with_label(_("Cancel"));
3348 loader_button_about = gtk_button_new_with_label(_("About"));
3349
3350 /* Add actions to the buttons */
3351 g_signal_connect (G_OBJECT (loader_button_import), "clicked", G_CALLBACK (pgui_action_import), NULL);
3352 g_signal_connect (G_OBJECT (loader_button_options), "clicked", G_CALLBACK (pgui_action_loader_options_open), NULL);
3353 g_signal_connect (G_OBJECT (loader_button_cancel), "clicked", G_CALLBACK (pgui_action_cancel), NULL);
3354 g_signal_connect (G_OBJECT (loader_button_about), "clicked", G_CALLBACK (pgui_action_about_open), NULL);
3355
3356 /* And insert the buttons into the hbox */
3357 gtk_box_pack_start(GTK_BOX(loader_hbox_buttons), loader_button_options, TRUE, TRUE, 0);
3358 gtk_box_pack_end(GTK_BOX(loader_hbox_buttons), loader_button_cancel, TRUE, TRUE, 0);
3359 gtk_box_pack_end(GTK_BOX(loader_hbox_buttons), loader_button_about, TRUE, TRUE, 0);
3360 gtk_box_pack_end(GTK_BOX(loader_hbox_buttons), loader_button_import, TRUE, TRUE, 0);
3361
3362 /*
3363 ** Table selector
3364 */
3365 export_list_frame = gtk_frame_new(_("Export List"));
3366 pgui_create_export_table_table(export_list_frame);
3367
3368 /*
3369 ** Row of action buttons
3370 */
3371 dumper_hbox_buttons = gtk_hbox_new(TRUE, 15);
3372 gtk_container_set_border_width (GTK_CONTAINER (dumper_hbox_buttons), 0);
3373
3374 /* Create the buttons themselves */
3375 dumper_button_options = gtk_button_new_with_label(_("Options..."));
3376 dumper_button_export = gtk_button_new_with_label(_("Export"));
3377 dumper_button_cancel = gtk_button_new_with_label(_("Cancel"));
3378 dumper_button_about = gtk_button_new_with_label(_("About"));
3379
3380 /* Add actions to the buttons */
3381 g_signal_connect (G_OBJECT (dumper_button_export), "clicked", G_CALLBACK (pgui_action_export), NULL);
3382 g_signal_connect (G_OBJECT (dumper_button_options), "clicked", G_CALLBACK (pgui_action_dumper_options_open), NULL);
3383 g_signal_connect (G_OBJECT (dumper_button_cancel), "clicked", G_CALLBACK (pgui_action_cancel), NULL);
3384 g_signal_connect (G_OBJECT (dumper_button_about), "clicked", G_CALLBACK (pgui_action_about_open), NULL);
3385
3386 /* And insert the buttons into the hbox */
3387 gtk_box_pack_start(GTK_BOX(dumper_hbox_buttons), dumper_button_options, TRUE, TRUE, 0);
3388 gtk_box_pack_end(GTK_BOX(dumper_hbox_buttons), dumper_button_cancel, TRUE, TRUE, 0);
3389 gtk_box_pack_end(GTK_BOX(dumper_hbox_buttons), dumper_button_about, TRUE, TRUE, 0);
3390 gtk_box_pack_end(GTK_BOX(dumper_hbox_buttons), dumper_button_export, TRUE, TRUE, 0);
3391
3392 /*
3393 ** Log window
3394 */
3395 frame_log = gtk_frame_new(_("Log Window"));
3396 gtk_container_set_border_width (GTK_CONTAINER (frame_log), 0);
3397 gtk_widget_set_size_request(frame_log, -1, 200);
3398 textview_log = gtk_text_view_new();
3399 textbuffer_log = gtk_text_buffer_new(NULL);
3400 scrolledwindow_log = gtk_scrolled_window_new(NULL, NULL);
3401 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(scrolledwindow_log), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
3402 gtk_text_view_set_buffer(GTK_TEXT_VIEW(textview_log), textbuffer_log);
3403 gtk_container_set_border_width (GTK_CONTAINER (textview_log), 5);
3404 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview_log), FALSE);
3405 gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(textview_log), FALSE);
3406 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview_log), GTK_WRAP_WORD);
3407 gtk_container_add (GTK_CONTAINER (scrolledwindow_log), textview_log);
3408 gtk_container_add (GTK_CONTAINER (frame_log), scrolledwindow_log);
3409
3410 /*
3411 ** Main window
3412 */
3413 vbox_main = gtk_vbox_new(FALSE, 10);
3414 gtk_container_set_border_width (GTK_CONTAINER (vbox_main), 0);
3415
3416 /* Add the loader frames into the notebook page */
3417 vbox_loader = gtk_vbox_new(FALSE, 10);
3418 gtk_container_set_border_width(GTK_CONTAINER(vbox_loader), 10);
3419
3420 gtk_box_pack_start(GTK_BOX(vbox_loader), import_list_frame, FALSE, TRUE, 0);
3421 gtk_box_pack_start(GTK_BOX(vbox_loader), loader_hbox_buttons, FALSE, FALSE, 0);
3422 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_loader, gtk_label_new(_("Import")));
3423
3424 /* Add the dumper frames into the notebook page */
3425 vbox_dumper = gtk_vbox_new(FALSE, 10);
3426 gtk_container_set_border_width(GTK_CONTAINER(vbox_dumper), 10);
3427
3428 gtk_box_pack_start(GTK_BOX(vbox_dumper), export_list_frame, FALSE, TRUE, 0);
3429 gtk_box_pack_start(GTK_BOX(vbox_dumper), dumper_hbox_buttons, FALSE, FALSE, 0);
3430 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_dumper, gtk_label_new(_("Export")));
3431
3432 /* Add the frames into the main vbox */
3433 gtk_box_pack_start(GTK_BOX(vbox_main), frame_pg, FALSE, TRUE, 0);
3434 gtk_box_pack_start(GTK_BOX(vbox_main), notebook, FALSE, TRUE, 0);
3435 gtk_box_pack_start(GTK_BOX(vbox_main), frame_log, TRUE, TRUE, 0);
3436
3437 /* and insert the vbox into the main window */
3438 gtk_container_add(GTK_CONTAINER(window_main), vbox_main);
3439
3440 /* make sure that everything, window and label, are visible */
3441 gtk_widget_show_all(window_main);
3442
3443 return;
3444}
#define TRUE
Definition dbfopen.c:169
#define FALSE
Definition dbfopen.c:168
static void pgui_action_connection_details(GtkWidget *widget, gpointer data)
static GtkTextBuffer * textbuffer_log
static void pgui_action_import(GtkWidget *widget, gpointer data)
static void pgui_action_export(GtkWidget *widget, gpointer data)
static void pgui_create_export_table_table(GtkWidget *export_list_frame)
static GtkWidget * textview_log
static void pgui_action_about_open()
static void pgui_action_loader_options_open(GtkWidget *widget, gpointer data)
static void pgui_quit(GtkWidget *widget, gpointer data)
static void pgui_action_dumper_options_open(GtkWidget *widget, gpointer data)
static GtkWidget * window_main
static void pgui_action_cancel(GtkWidget *widget, gpointer data)
static void pgui_create_import_file_table(GtkWidget *import_list_frame)
#define _(String)
Definition shpcommon.h:24

References _, FALSE, pgui_action_about_open(), pgui_action_cancel(), pgui_action_connection_details(), pgui_action_dumper_options_open(), pgui_action_export(), pgui_action_import(), pgui_action_loader_options_open(), pgui_create_export_table_table(), pgui_create_import_file_table(), pgui_quit(), textbuffer_log, textview_log, TRUE, and window_main.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function: