#include "geotrace.h"
// vars for main window
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *menubar;
GtkWidget *status_bar;
GtkWidget *file_item;
GtkWidget *file_menu;
GtkWidget *options_item;
GtkWidget *exit_item;
GtkWidget *about_item;
GtkWidget *hbox;
GtkWidget *host_label;
GtkWidget *host_entry;
GtkWidget *host_combo;
GtkWidget *trace_button;
GtkWidget *separator1;
GtkWidget *separator2;
GtkWidget *map_label;
GtkWidget *combo_entry;
GtkWidget *map_combo;
GtkWidget *map_change_button;
GtkWidget *latlon_label;
GtkWidget *latlon_label2;
GtkWidget *vpaned;
GtkWidget *scrolled_window;
GtkWidget *drawing_area;
GtkWidget *scrolled_window2;
GtkWidget *trace_list;
GtkWidget *hop_label;
GtkWidget *ip_label;
GtkWidget *dns_label;
GtkWidget *location_label;
GtkWidget *rtt_label;
// vars for options window
GtkWidget *options_window;
GtkWidget *options_vbox;
GtkWidget *options_apply_button;
GtkWidget *options_cancel_button;
GtkWidget *options_button_box;
// traceroute options notebook
GtkWidget *options_notebook;
GtkWidget *trace_options_vbox;
GtkWidget *traceroute_options_label;
GtkWidget *trace_options_hbox1;
GtkWidget *executable_label;
GtkWidget *trace_path_entry;
GtkWidget *trace_path_button;
GtkWidget *trace_options_hbox2;
GtkWidget *max_ttl_label;
GtkObject *max_ttl_spinbutton_adj;
GtkWidget *max_ttl_spinbutton;
GtkWidget *resolve_checkbox;
GtkWidget *timeout_label;
GtkObject *timeout_spinbutton_adj;
GtkWidget *timeout_spinbutton;
GtkWidget *notebook_trace_label;
GtkWidget *empty_notebook_page;
// map notebook
GtkWidget *map_options_vbox;
GtkWidget *map_options_label;
GtkWidget *map_options_hbox1;
GtkWidget *map_dir_path_label;
GtkWidget *map_dir_path_entry;
GtkWidget *map_dir_path_button;
GtkWidget *map_options_hbox2;
GtkWidget *start_map_label;
GtkWidget *start_map_combo;
GtkWidget *start_map_entry;
GtkWidget *notebook_maps_label;
// display notebook
GtkWidget *display_options_vbox;
GtkWidget *display_options_label;
GtkWidget *display_options_hbox1;
GtkWidget *notebook_display_label;
GtkWidget *display_color_label;
GtkWidget *display_color_label2;
GtkWidget *display_color_select_button;
GtkWidget *line_width_label;
GtkObject *line_width_spinbutton_adj;
GtkWidget *line_width_spinbutton;
// vars for traceroute file selection
GtkWidget*trace_selection_dialog;
GtkWidget*trace_select_ok_button;
GtkWidget*trace_select_cancel_button;
// vars for about window
GtkWidget *about_label;
GtkWidget *about_window;
// vars for popup window
GtkWidget *popup_label;
GtkWidget *popup_window;
// vars for color selection dialog
GtkWidget *color_select_dialog;
GtkWidget *color_select_ok_button;
GtkWidget *color_select_cancel_button;
char *popup_msg;
// creates main window
void create_window(void) {
// create main window
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW(window),800,600);
gtk_window_set_title (GTK_WINDOW(window),GEO_TITLEBAR_STR);
gtk_signal_connect (GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC (delete_event), NULL);
gtk_signal_connect (GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
// create vbox
vbox = gtk_vbox_new (FALSE,0);
gtk_widget_show (vbox);
gtk_container_add (GTK_CONTAINER(window),vbox);
// create menu
file_menu = gtk_menu_new();
options_item = gtk_menu_item_new_with_label("Options");
exit_item = gtk_menu_item_new_with_label("Exit");
gtk_menu_append(GTK_MENU(file_menu),options_item);
gtk_menu_append(GTK_MENU(file_menu),exit_item);
gtk_signal_connect_object(GTK_OBJECT(options_item),"activate",
GTK_SIGNAL_FUNC(options_clicked),NULL);
gtk_signal_connect_object(GTK_OBJECT(exit_item),"activate",
GTK_SIGNAL_FUNC(destroy),NULL);
gtk_widget_show(options_item);
gtk_widget_show(exit_item);
about_item = gtk_menu_item_new_with_label("About");
gtk_signal_connect_object(GTK_OBJECT(about_item),"activate",
GTK_SIGNAL_FUNC(about_clicked),NULL);
gtk_widget_show(about_item);
menubar = gtk_menu_bar_new();
gtk_box_pack_start(GTK_BOX(vbox),menubar,FALSE,FALSE,0);
gtk_widget_show(menubar);
file_item = gtk_menu_item_new_with_label("File");
gtk_widget_show(file_item);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(file_item),file_menu);
gtk_menu_bar_append(GTK_MENU_BAR(menubar),file_item);
gtk_menu_item_right_justify(GTK_MENU_ITEM (about_item));
gtk_menu_bar_append(GTK_MENU_BAR(menubar),about_item);
// create host/trace/maps row
hbox = gtk_hbox_new(FALSE,0);
gtk_widget_show(hbox);
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,TRUE,0);
gtk_widget_set_usize(hbox,-2,25);
host_label = gtk_label_new("Host:");
gtk_widget_show(host_label);
gtk_box_pack_start(GTK_BOX(hbox),host_label,FALSE,FALSE,5);
host_combo = gtk_combo_new();
gtk_widget_show(host_combo);
gtk_box_pack_start(GTK_BOX(hbox),host_combo,FALSE,FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(host_combo),5);
host_entry = GTK_COMBO(host_combo)->entry;
gtk_widget_show(host_entry);
trace_button = gtk_button_new_with_label ("Trace");
gtk_widget_show(trace_button);
gtk_box_pack_start(GTK_BOX(hbox),trace_button,FALSE,FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(trace_button),3);
gtk_signal_connect(GTK_OBJECT(trace_button),"clicked",
GTK_SIGNAL_FUNC(trace_button_clicked),NULL);
separator1 = gtk_vseparator_new();
gtk_widget_show(separator1);
gtk_box_pack_start(GTK_BOX(hbox),separator1,FALSE,TRUE,5);
map_label = gtk_label_new("Map:");
gtk_widget_show(map_label);
gtk_box_pack_start(GTK_BOX(hbox),map_label,FALSE,FALSE,5);
map_combo = gtk_combo_new();
gtk_widget_show(map_combo);
gtk_box_pack_start(GTK_BOX(hbox),map_combo,FALSE,FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(map_combo),5);
map_combo_entry = GTK_COMBO(map_combo)->entry;
gtk_widget_show(map_combo_entry);
gtk_entry_set_editable(GTK_ENTRY(map_combo_entry),FALSE);
gtk_widget_set_sensitive(map_combo_entry,FALSE);
map_change_button = gtk_button_new_with_label ("Change");
gtk_widget_show(map_change_button);
gtk_box_pack_start(GTK_BOX(hbox),map_change_button,FALSE,FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(map_change_button),3);
gtk_signal_connect(GTK_OBJECT(map_change_button),"clicked",
GTK_SIGNAL_FUNC(map_combo_entry_changed),NULL);
separator2 = gtk_vseparator_new();
gtk_widget_show(separator2);
gtk_box_pack_start(GTK_BOX(hbox),separator2,FALSE,TRUE,5);
latlon_label2 = gtk_label_new("Lat/Lon:");
gtk_widget_show(latlon_label2);
gtk_box_pack_start(GTK_BOX(hbox),latlon_label2,FALSE,FALSE,5);
latlon_label = gtk_label_new("");
gtk_widget_show(latlon_label);
gtk_box_pack_start(GTK_BOX(hbox),latlon_label,FALSE,FALSE,5);
// create vpane/drawarea
vpaned = gtk_vpaned_new();
gtk_widget_show(vpaned);
gtk_box_pack_start(GTK_BOX(vbox),vpaned,TRUE,TRUE,0);
scrolled_window = gtk_scrolled_window_new(NULL,NULL);
gtk_widget_show (scrolled_window);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolled_window),
GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
gtk_paned_pack1(GTK_PANED(vpaned),scrolled_window,FALSE,TRUE);
gtk_widget_set_usize(scrolled_window,800,400);
drawing_area = gtk_drawing_area_new();
gtk_widget_show(drawing_area);
gtk_drawing_area_size(GTK_DRAWING_AREA (drawing_area), 792,392);
gtk_signal_connect (GTK_OBJECT (drawing_area), "expose_event",
(GtkSignalFunc) expose_event, NULL);
gtk_signal_connect (GTK_OBJECT (drawing_area),
"motion_notify_event" ,(GtkSignalFunc) on_mouse_move,NULL);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window),
drawing_area);
gtk_widget_set_events(drawing_area,GDK_POINTER_MOTION_MASK
| GDK_POINTER_MOTION_HINT_MASK);
scrolled_window2 = gtk_scrolled_window_new(NULL,NULL);
gtk_widget_show (scrolled_window2);
gtk_paned_pack2(GTK_PANED(vpaned),scrolled_window2,TRUE,TRUE);
trace_list = gtk_clist_new(5);
gtk_widget_show(trace_list);
gtk_container_add(GTK_CONTAINER(scrolled_window2),trace_list);
gtk_clist_set_column_width(GTK_CLIST(trace_list),0,20);
gtk_clist_set_column_width(GTK_CLIST(trace_list),1,110);
gtk_clist_set_column_width(GTK_CLIST(trace_list),2,239);
gtk_clist_set_column_width(GTK_CLIST(trace_list),3,314);
gtk_clist_set_column_width(GTK_CLIST(trace_list),4,58);
gtk_clist_column_titles_show(GTK_CLIST(trace_list));
hop_label = gtk_label_new("Hop");
gtk_widget_show(hop_label);
gtk_clist_set_column_widget(GTK_CLIST(trace_list),0,hop_label);
ip_label = gtk_label_new("IP");
gtk_widget_show(ip_label);
gtk_clist_set_column_widget(GTK_CLIST(trace_list),1,ip_label);
dns_label = gtk_label_new("DNS");
gtk_widget_show(dns_label);
gtk_clist_set_column_widget(GTK_CLIST(trace_list),2,dns_label);
location_label = gtk_label_new("Location");
gtk_widget_show(location_label);
gtk_clist_set_column_widget(GTK_CLIST(trace_list),3,location_label);
rtt_label = gtk_label_new("RTT (ms)");
gtk_widget_show(rtt_label);
gtk_clist_set_column_widget(GTK_CLIST(trace_list),4,rtt_label);
gtk_clist_column_titles_passive(GTK_CLIST(trace_list));
status_bar = gtk_statusbar_new();
gtk_widget_show(status_bar);
gtk_box_pack_start(GTK_BOX(vbox),status_bar,FALSE,FALSE,0);
}
void create_options_window() {
options_window = gtk_window_new (GTK_WINDOW_DIALOG);
gtk_window_set_default_size (GTK_WINDOW(options_window),350,150);
gtk_window_set_title (GTK_WINDOW(options_window),"Options");
gtk_signal_connect (GTK_OBJECT(options_window), "destroy",
GTK_SIGNAL_FUNC (generic_destroy), NULL);
options_vbox = gtk_vbox_new(FALSE,0);
gtk_widget_show (options_vbox);
gtk_container_add(GTK_CONTAINER(options_window),options_vbox);
// trace options notebook
options_notebook = gtk_notebook_new();
gtk_widget_show (options_notebook);
gtk_container_add(GTK_CONTAINER(options_vbox),options_notebook);
trace_options_vbox = gtk_vbox_new(FALSE,0);
gtk_widget_show (trace_options_vbox);
gtk_container_add(GTK_CONTAINER(options_notebook),trace_options_vbox);
traceroute_options_label = gtk_label_new("Traceroute Options");
gtk_widget_show (traceroute_options_label);
gtk_box_pack_start(GTK_BOX(trace_options_vbox),traceroute_options_label,FALSE,FALSE,0);
gtk_widget_set_usize(traceroute_options_label,-2,43);
trace_options_hbox1 = gtk_hbox_new(FALSE,0);
gtk_widget_show (trace_options_hbox1);
gtk_box_pack_start(GTK_BOX(trace_options_vbox),trace_options_hbox1,FALSE,FALSE,0);
gtk_widget_set_usize(trace_options_hbox1,-2,35);
executable_label = gtk_label_new("Executable:");
gtk_widget_show(executable_label);
gtk_box_pack_start(GTK_BOX(trace_options_hbox1),executable_label,FALSE,FALSE,0);
trace_path_entry = gtk_entry_new();
gtk_widget_show(trace_path_entry);
gtk_box_pack_start(GTK_BOX(trace_options_hbox1),trace_path_entry,FALSE,FALSE,5);
gtk_widget_set_usize(trace_path_entry,201,-2);
trace_path_button = gtk_button_new_with_label("Browse");
gtk_widget_show(trace_path_button);
gtk_box_pack_start(GTK_BOX(trace_options_hbox1),trace_path_button,FALSE,FALSE,5);
gtk_widget_set_usize(trace_path_button,65,23);
gtk_container_set_border_width(GTK_CONTAINER(trace_path_button),7);
gtk_signal_connect(GTK_OBJECT(trace_path_button),"clicked",
GTK_SIGNAL_FUNC(trace_browse_button_clicked),NULL);
trace_options_hbox2 = gtk_hbox_new(FALSE,0);
gtk_widget_show (trace_options_hbox2);
gtk_box_pack_start(GTK_BOX(trace_options_vbox),trace_options_hbox2,FALSE,FALSE,0);
gtk_widget_set_usize(trace_options_hbox2,-2,35);
max_ttl_label = gtk_label_new("Max TTL:");
gtk_widget_show(max_ttl_label);
gtk_box_pack_start(GTK_BOX(trace_options_hbox2),max_ttl_label,FALSE,FALSE,5);
max_ttl_spinbutton_adj = gtk_adjustment_new(30,1,50,1,10,10);
max_ttl_spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(max_ttl_spinbutton_adj),1,0);
gtk_widget_show (max_ttl_spinbutton);
gtk_box_pack_start(GTK_BOX(trace_options_hbox2),max_ttl_spinbutton,FALSE,FALSE,5);
gtk_widget_set_usize(max_ttl_spinbutton,-2,22);
timeout_label = gtk_label_new("Timeout:");
gtk_widget_show(timeout_label);
gtk_box_pack_start(GTK_BOX(trace_options_hbox2),timeout_label,FALSE,FALSE,0);
timeout_spinbutton_adj = gtk_adjustment_new(5,2,50,1,10,10);
timeout_spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(timeout_spinbutton_adj),1,0);
gtk_widget_show (timeout_spinbutton);
gtk_box_pack_start(GTK_BOX(trace_options_hbox2),timeout_spinbutton,FALSE,FALSE,5);
gtk_widget_set_usize(timeout_spinbutton,-2,22);
resolve_checkbox = gtk_check_button_new_with_label("Resolve name");
gtk_widget_show (resolve_checkbox);
gtk_box_pack_start(GTK_BOX(trace_options_hbox2),resolve_checkbox,FALSE,FALSE,5);
notebook_trace_label = gtk_label_new("Traceroute");
gtk_widget_show (notebook_trace_label);
gtk_notebook_set_tab_label(GTK_NOTEBOOK(options_notebook),gtk_notebook_get_nth_page(GTK_NOTEBOOK(options_notebook),0),notebook_trace_label);
// map options notebook
map_options_vbox = gtk_vbox_new(FALSE,0);
gtk_widget_show (map_options_vbox);
gtk_container_add(GTK_CONTAINER(options_notebook),map_options_vbox);
map_options_label = gtk_label_new("Map Options");
gtk_widget_show (map_options_label);
gtk_box_pack_start(GTK_BOX(map_options_vbox),map_options_label,FALSE,FALSE,0);
gtk_widget_set_usize(map_options_label,-2,43);
map_options_hbox1 = gtk_hbox_new(FALSE,0);
gtk_widget_show (map_options_hbox1);
gtk_box_pack_start(GTK_BOX(map_options_vbox),map_options_hbox1,FALSE,FALSE,0);
gtk_widget_set_usize(map_options_hbox1,-2,35);
map_dir_path_label = gtk_label_new("Maps Dir:");
gtk_widget_show(map_dir_path_label);
gtk_box_pack_start(GTK_BOX(map_options_hbox1),map_dir_path_label,FALSE,FALSE,0);
map_dir_path_entry = gtk_entry_new();
gtk_widget_show(map_dir_path_entry);
gtk_box_pack_start(GTK_BOX(map_options_hbox1),map_dir_path_entry,FALSE,FALSE,5);
gtk_widget_set_usize(map_dir_path_entry,201,-2);
map_dir_path_button = gtk_button_new_with_label("Browse");
gtk_widget_show(map_dir_path_button);
gtk_box_pack_start(GTK_BOX(map_options_hbox1),map_dir_path_button,FALSE,FALSE,5);
gtk_widget_set_usize(map_dir_path_button,65,23);
gtk_container_set_border_width(GTK_CONTAINER(map_dir_path_button),7);
gtk_signal_connect(GTK_OBJECT(map_dir_path_button),"clicked",
GTK_SIGNAL_FUNC(maps_browse_button_clicked),NULL);
map_options_hbox2 = gtk_hbox_new(FALSE,0);
gtk_widget_show (map_options_hbox2);
gtk_box_pack_start(GTK_BOX(map_options_vbox),map_options_hbox2,FALSE,FALSE,0);
gtk_widget_set_usize(map_options_hbox2,-2,35);
start_map_label = gtk_label_new("Start map:");
gtk_widget_show(start_map_label);
gtk_box_pack_start(GTK_BOX(map_options_hbox2),start_map_label,FALSE,FALSE,0);
start_map_combo = gtk_combo_new();
gtk_widget_show(start_map_combo);
gtk_box_pack_start(GTK_BOX(map_options_hbox2),start_map_combo,FALSE,FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(start_map_combo),5);
start_map_entry = GTK_COMBO(start_map_combo)->entry;
gtk_widget_show(start_map_entry);
gtk_entry_set_editable(GTK_ENTRY(map_combo_entry),FALSE);
gtk_widget_set_sensitive(start_map_entry,FALSE);
notebook_maps_label = gtk_label_new("Maps");
gtk_widget_show (notebook_maps_label);
gtk_notebook_set_tab_label(GTK_NOTEBOOK(options_notebook),gtk_notebook_get_nth_page(GTK_NOTEBOOK(options_notebook),1),notebook_maps_label);
// display options notebook
display_options_vbox = gtk_vbox_new(FALSE,0);
gtk_widget_show (display_options_vbox);
gtk_container_add(GTK_CONTAINER(options_notebook),display_options_vbox);
display_options_label = gtk_label_new("Display Options");
gtk_widget_show (display_options_label);
gtk_box_pack_start(GTK_BOX(display_options_vbox),display_options_label,FALSE,FALSE,0);
gtk_widget_set_usize(display_options_label,-2,43);
display_options_hbox1 = gtk_hbox_new(FALSE,0);
gtk_widget_show (display_options_hbox1);
gtk_box_pack_start(GTK_BOX(display_options_vbox),display_options_hbox1,FALSE,FALSE,0);
gtk_widget_set_usize(display_options_hbox1,-2,35);
display_color_label = gtk_label_new("Line color:");
gtk_widget_show(display_color_label);
gtk_box_pack_start(GTK_BOX(display_options_hbox1),display_color_label,FALSE,FALSE,0);
display_color_label2 = gtk_event_box_new();
gtk_widget_show(display_color_label2);
gtk_box_pack_start(GTK_BOX(display_options_hbox1),display_color_label2,FALSE,FALSE,5);
gtk_widget_set_usize(display_color_label2,30,20);
display_color_select_button = gtk_button_new_with_label("Select");
gtk_widget_show(display_color_select_button);
gtk_box_pack_start(GTK_BOX(display_options_hbox1),display_color_select_button,FALSE,FALSE,5);
gtk_widget_set_usize(display_color_select_button,65,23);
gtk_container_set_border_width(GTK_CONTAINER(display_color_select_button),7);
gtk_signal_connect(GTK_OBJECT(display_color_select_button),"clicked",
GTK_SIGNAL_FUNC(display_color_select_clicked),NULL);
line_width_label = gtk_label_new("Line Width:");
gtk_widget_show(line_width_label);
gtk_box_pack_start(GTK_BOX(display_options_hbox1),line_width_label,FALSE,FALSE,5);
line_width_spinbutton_adj = gtk_adjustment_new(1,1,10,1,10,10);
line_width_spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(line_width_spinbutton_adj),1,0);
gtk_widget_show (line_width_spinbutton);
gtk_box_pack_start(GTK_BOX(display_options_hbox1),line_width_spinbutton,FALSE,FALSE,5);
gtk_widget_set_usize(line_width_spinbutton,-2,22);
notebook_display_label = gtk_label_new("Display");
gtk_widget_show (notebook_display_label);
gtk_notebook_set_tab_label(GTK_NOTEBOOK(options_notebook),gtk_notebook_get_nth_page(GTK_NOTEBOOK(options_notebook),2),notebook_display_label);
// button box
options_button_box = gtk_hbox_new(FALSE,0);
gtk_widget_show (options_button_box);
gtk_box_pack_start(GTK_BOX(options_vbox),options_button_box,FALSE,FALSE,0);
gtk_widget_set_usize(options_button_box,-2,35);
options_apply_button = gtk_button_new_with_label("Apply");
gtk_widget_show(options_apply_button);
gtk_box_pack_start(GTK_BOX(options_button_box),options_apply_button,TRUE,FALSE,0);
gtk_container_set_border_width(GTK_CONTAINER(options_apply_button),5);
gtk_signal_connect(GTK_OBJECT(options_apply_button),"clicked",
GTK_SIGNAL_FUNC(options_apply_button_clicked),NULL);
options_cancel_button = gtk_button_new_with_label("Cancel");
gtk_widget_show(options_cancel_button);
gtk_box_pack_start(GTK_BOX(options_button_box),options_cancel_button,TRUE,FALSE,0);
gtk_container_set_border_width(GTK_CONTAINER(options_cancel_button),5);
gtk_signal_connect(GTK_OBJECT(options_cancel_button),"clicked",
GTK_SIGNAL_FUNC(options_cancel_button_clicked),NULL);
}
void create_trace_select_dialog() {
trace_selection_dialog = gtk_file_selection_new("Select file");
gtk_container_set_border_width (GTK_CONTAINER(trace_selection_dialog),10);
trace_select_ok_button = GTK_FILE_SELECTION(trace_selection_dialog)->ok_button;
gtk_widget_show (trace_select_ok_button);
gtk_signal_connect(GTK_OBJECT(trace_select_ok_button),"clicked",
GTK_SIGNAL_FUNC(browse_ok_button_clicked),NULL);
trace_select_cancel_button = GTK_FILE_SELECTION(trace_selection_dialog)->cancel_button;
gtk_widget_show (trace_select_cancel_button);
gtk_signal_connect(GTK_OBJECT(trace_select_cancel_button),"clicked",
GTK_SIGNAL_FUNC(browse_cancel_button_clicked),NULL);
}
void create_about_window() {
about_window = gtk_window_new (GTK_WINDOW_DIALOG);
gtk_window_set_default_size (GTK_WINDOW(about_window),150,100);
gtk_window_set_title (GTK_WINDOW(about_window),"About GeoTrace");
gtk_signal_connect (GTK_OBJECT(about_window), "destroy",
GTK_SIGNAL_FUNC (generic_destroy), NULL);
about_label = gtk_label_new(ABOUT_STRING);
gtk_widget_show(about_label);
gtk_container_add(GTK_CONTAINER(about_window),about_label);
}
void create_popup_window() {
popup_window = gtk_window_new (GTK_WINDOW_DIALOG);
gtk_window_set_default_size (GTK_WINDOW(popup_window),150,50);
gtk_window_set_title (GTK_WINDOW(popup_window),"Warning");
gtk_signal_connect (GTK_OBJECT(popup_window), "destroy",
GTK_SIGNAL_FUNC (generic_destroy), NULL);
popup_label = gtk_label_new(popup_msg);
gtk_widget_show(popup_label);
gtk_container_add(GTK_CONTAINER(popup_window),popup_label);
}
void create_color_select_dialog() {
color_select_dialog = gtk_color_selection_dialog_new("Select Color");
color_select_ok_button = GTK_COLOR_SELECTION_DIALOG(color_select_dialog)->ok_button;
gtk_widget_show(color_select_ok_button);
color_select_cancel_button = GTK_COLOR_SELECTION_DIALOG(color_select_dialog)->cancel_button;
gtk_widget_show(color_select_cancel_button);
gtk_signal_connect (GTK_OBJECT(color_select_dialog),"destroy",
GTK_SIGNAL_FUNC (generic_destroy), NULL);
gtk_signal_connect (GTK_OBJECT(color_select_cancel_button),"clicked",
GTK_SIGNAL_FUNC (color_select_destroy), NULL);
gtk_signal_connect (GTK_OBJECT(color_select_ok_button),"clicked",
GTK_SIGNAL_FUNC (color_select_ok_clicked), NULL);
gtk_widget_show (color_select_dialog);
}
syntax highlighted by Code2HTML, v. 0.9.1