Lines 38-44
Link Here
|
38 |
// Handler for "Load..." menu item |
38 |
// Handler for "Load..." menu item |
39 |
void |
39 |
void |
40 |
file_load() |
40 |
file_load() |
41 |
{ |
41 |
{ |
42 |
GtkWidget *dialog = gtk_file_chooser_dialog_new("Freeway Load File", |
42 |
GtkWidget *dialog = gtk_file_chooser_dialog_new("Freeway Load File", |
43 |
window.getShell(), |
43 |
window.getShell(), |
44 |
GTK_FILE_CHOOSER_ACTION_OPEN, |
44 |
GTK_FILE_CHOOSER_ACTION_OPEN, |
Lines 49-73
Link Here
|
49 |
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); |
49 |
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); |
50 |
traffic_do_load(filename); |
50 |
traffic_do_load(filename); |
51 |
g_free(filename); |
51 |
g_free(filename); |
|
|
52 |
gtk_widget_destroy(dialog); |
53 |
show_message("Load","Load successful"); |
54 |
} else { |
55 |
gtk_widget_destroy(dialog); |
52 |
} |
56 |
} |
53 |
} |
57 |
} |
54 |
|
58 |
|
55 |
// Handler for "Save" menu item |
59 |
// Handler for "Save" menu item |
56 |
void |
60 |
void |
57 |
file_save() |
61 |
file_save() |
58 |
{ |
62 |
{ |
59 |
if (!traffic_current_file) { |
63 |
if (!traffic_current_file) { |
60 |
file_saveas(); |
64 |
file_saveas(); |
61 |
} else { |
65 |
} else { |
62 |
traffic_do_save(traffic_current_file); |
66 |
traffic_do_save(traffic_current_file); |
|
|
67 |
show_message("Save","Save complete"); |
63 |
} |
68 |
} |
64 |
} |
69 |
} |
65 |
|
70 |
|
66 |
// Handler for "Save As..." menu item |
71 |
// Handler for "Save As..." menu item |
67 |
void |
72 |
void |
68 |
file_saveas() |
73 |
file_saveas() |
69 |
{ |
74 |
{ |
70 |
GtkWidget *dialog = gtk_file_chooser_dialog_new("Freeway Save File", |
75 |
GtkWidget *dialog = gtk_file_chooser_dialog_new("Freeway Save File", |
71 |
window.getShell(), |
76 |
window.getShell(), |
72 |
GTK_FILE_CHOOSER_ACTION_OPEN, |
77 |
GTK_FILE_CHOOSER_ACTION_OPEN, |
73 |
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, |
78 |
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, |
Lines 75-90
Link Here
|
75 |
NULL); |
80 |
NULL); |
76 |
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { |
81 |
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { |
77 |
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); |
82 |
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); |
78 |
traffic_do_load(filename); |
83 |
traffic_do_save(filename); |
79 |
g_free(filename); |
84 |
g_free(filename); |
|
|
85 |
gtk_widget_destroy(dialog); |
86 |
show_message("Save","Save successful"); |
87 |
} else { |
88 |
gtk_widget_destroy(dialog); |
80 |
} |
89 |
} |
81 |
} |
90 |
} |
82 |
|
91 |
|
|
|
92 |
void |
93 |
show_message(const char* header_name,const char* message) |
94 |
{ |
95 |
GtkWidget *dialog = gtk_dialog_new_with_buttons(header_name, window.getShell(), |
96 |
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_NONE, NULL); |
97 |
GtkWidget *label = gtk_label_new(message); |
98 |
g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog); |
99 |
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label); |
100 |
gtk_widget_set_usize(dialog,220,120); |
101 |
gtk_widget_show_all(dialog); |
102 |
} |
103 |
|
83 |
// Handler for "Close" menu item |
104 |
// Handler for "Close" menu item |
84 |
void |
105 |
void |
85 |
file_close() |
106 |
file_close() |
86 |
{ |
107 |
{ |
87 |
traffic_file_close(); |
108 |
traffic_file_close(); |
|
|
109 |
show_message("Close","File closed"); |
88 |
} |
110 |
} |
89 |
|
111 |
|
90 |
// Handler for "About.." help-menu item |
112 |
// Handler for "About.." help-menu item |