29 |
#include "support.h" |
#include "support.h" |
30 |
#include "types.h" |
#include "types.h" |
31 |
#include "log.h" |
#include "log.h" |
32 |
|
#include "gui_utils.h" |
33 |
|
|
34 |
extern GtkWidget *mainwindow; |
extern GtkWidget *mainwindow; |
35 |
extern GtkWidget *mainnotebook; |
extern GtkWidget *mainnotebook; |
47 |
|
|
48 |
page = gtk_notebook_get_current_page (GTK_NOTEBOOK (mainnotebook)); |
page = gtk_notebook_get_current_page (GTK_NOTEBOOK (mainnotebook)); |
49 |
if (page >= 0) |
if (page >= 0) |
50 |
|
{ |
51 |
|
logwindow = g_list_nth_data (logwindowlist, page); |
52 |
|
if (logwindow->logchanged) |
53 |
{ |
{ |
54 |
logwindow = g_list_nth_data (logwindowlist, page); |
closedialog = gtk_dialog_new (); |
55 |
if (logwindow->logchanged) |
gtk_window_set_title (GTK_WINDOW (closedialog), _("xlog - closing")); |
56 |
|
gtk_window_set_position (GTK_WINDOW (closedialog), GTK_WIN_POS_MOUSE); |
57 |
|
closedialog_icon_pixbuf = create_pixbuf ("xlog.png"); |
58 |
|
if (closedialog_icon_pixbuf) |
59 |
{ |
{ |
60 |
closedialog = gtk_dialog_new (); |
gtk_window_set_icon (GTK_WINDOW (closedialog), closedialog_icon_pixbuf); |
61 |
gtk_window_set_title (GTK_WINDOW (closedialog), _("xlog - closing")); |
g_object_unref (closedialog_icon_pixbuf); |
|
gtk_window_set_position (GTK_WINDOW (closedialog), GTK_WIN_POS_MOUSE); |
|
|
closedialog_icon_pixbuf = create_pixbuf ("xlog.png"); |
|
|
if (closedialog_icon_pixbuf) |
|
|
{ |
|
|
gtk_window_set_icon (GTK_WINDOW (closedialog), closedialog_icon_pixbuf); |
|
|
g_object_unref (closedialog_icon_pixbuf); |
|
|
} |
|
|
dialog_vbox = GTK_DIALOG (closedialog)->vbox; |
|
|
gtk_widget_show (dialog_vbox); |
|
|
label = gtk_label_new (_("This log has not been saved, do you want to close it anyway?")); |
|
|
gtk_widget_show (label); |
|
|
gtk_box_pack_start (GTK_BOX (dialog_vbox), label, FALSE, FALSE, 0); |
|
|
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); |
|
|
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); |
|
|
gtk_misc_set_padding (GTK_MISC (label), 20, 20); |
|
|
dialog_action_area = GTK_DIALOG (closedialog)->action_area; |
|
|
gtk_widget_show (dialog_action_area); |
|
|
gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area), GTK_BUTTONBOX_SPREAD); |
|
|
closecancelbutton = gtk_button_new_from_stock ("gtk-cancel"); |
|
|
gtk_widget_show (closecancelbutton); |
|
|
gtk_dialog_add_action_widget (GTK_DIALOG (closedialog), closecancelbutton, GTK_RESPONSE_CANCEL); |
|
|
GTK_WIDGET_SET_FLAGS (closecancelbutton, GTK_CAN_DEFAULT); |
|
|
closeokbutton = gtk_button_new_from_stock ("gtk-ok"); |
|
|
gtk_widget_show (closeokbutton); |
|
|
gtk_dialog_add_action_widget (GTK_DIALOG (closedialog), closeokbutton, GTK_RESPONSE_OK); |
|
|
GTK_WIDGET_SET_FLAGS (closeokbutton, GTK_CAN_DEFAULT); |
|
|
response = gtk_dialog_run (GTK_DIALOG(closedialog)); |
|
|
if (response == GTK_RESPONSE_OK) |
|
|
{ |
|
|
logwindowlist = g_list_remove (logwindowlist, logwindow); |
|
|
g_free (logwindow->logname); |
|
|
g_free (logwindow->filename); |
|
|
g_free (logwindow); |
|
|
state.logwindows--; |
|
|
gtk_notebook_remove_page (GTK_NOTEBOOK (mainnotebook), page); |
|
|
} |
|
|
gtk_widget_destroy (closedialog); |
|
62 |
} |
} |
63 |
else |
dialog_vbox = GTK_DIALOG (closedialog)->vbox; |
64 |
|
gtk_widget_show (dialog_vbox); |
65 |
|
label = gtk_label_new (_("This log has not been saved, do you want to close it anyway?")); |
66 |
|
gtk_widget_show (label); |
67 |
|
gtk_box_pack_start (GTK_BOX (dialog_vbox), label, FALSE, FALSE, 0); |
68 |
|
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); |
69 |
|
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); |
70 |
|
gtk_misc_set_padding (GTK_MISC (label), 20, 20); |
71 |
|
dialog_action_area = GTK_DIALOG (closedialog)->action_area; |
72 |
|
gtk_widget_show (dialog_action_area); |
73 |
|
gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area), GTK_BUTTONBOX_SPREAD); |
74 |
|
closecancelbutton = gtk_button_new_from_stock ("gtk-cancel"); |
75 |
|
gtk_widget_show (closecancelbutton); |
76 |
|
gtk_dialog_add_action_widget (GTK_DIALOG (closedialog), closecancelbutton, GTK_RESPONSE_CANCEL); |
77 |
|
GTK_WIDGET_SET_FLAGS (closecancelbutton, GTK_CAN_DEFAULT); |
78 |
|
closeokbutton = gtk_button_new_from_stock ("gtk-ok"); |
79 |
|
gtk_widget_show (closeokbutton); |
80 |
|
gtk_dialog_add_action_widget (GTK_DIALOG (closedialog), closeokbutton, GTK_RESPONSE_OK); |
81 |
|
GTK_WIDGET_SET_FLAGS (closeokbutton, GTK_CAN_DEFAULT); |
82 |
|
response = gtk_dialog_run (GTK_DIALOG(closedialog)); |
83 |
|
if (response == GTK_RESPONSE_OK) |
84 |
{ |
{ |
85 |
logwindowlist = g_list_remove (logwindowlist, logwindow); |
logwindowlist = g_list_remove (logwindowlist, logwindow); |
86 |
g_free (logwindow->logname); |
g_free (logwindow->logname); |
87 |
g_free (logwindow->filename); |
g_free (logwindow->filename); |
88 |
g_free (logwindow); |
g_free (logwindow); |
89 |
gtk_notebook_remove_page (GTK_NOTEBOOK (mainnotebook), page); |
gtk_notebook_remove_page (GTK_NOTEBOOK (mainnotebook), page); |
90 |
|
set_tabs_menu (); |
91 |
state.logwindows--; |
state.logwindows--; |
92 |
} |
} |
93 |
|
gtk_widget_destroy (closedialog); |
94 |
} |
} |
95 |
|
else |
96 |
|
{ |
97 |
|
logwindowlist = g_list_remove (logwindowlist, logwindow); |
98 |
|
g_free (logwindow->logname); |
99 |
|
g_free (logwindow->filename); |
100 |
|
g_free (logwindow); |
101 |
|
gtk_notebook_remove_page (GTK_NOTEBOOK (mainnotebook), page); |
102 |
|
set_tabs_menu (); |
103 |
|
state.logwindows--; |
104 |
|
} |
105 |
|
} |
106 |
} |
} |