41 |
#include "gui_preferencesdialog.h" |
#include "gui_preferencesdialog.h" |
42 |
#include "gui_saveasdialog.h" |
#include "gui_saveasdialog.h" |
43 |
#include "gui_searchdialog.h" |
#include "gui_searchdialog.h" |
44 |
|
#include "gui_netkeyer.h" |
45 |
#include "support.h" |
#include "support.h" |
46 |
#include "types.h" |
#include "types.h" |
47 |
|
|
53 |
GtkUIManager *ui_manager; |
GtkUIManager *ui_manager; |
54 |
extern preferencestype preferences; |
extern preferencestype preferences; |
55 |
|
|
56 |
|
static struct { |
57 |
|
gchar *filename; |
58 |
|
gchar *stock_id; |
59 |
|
} stock_icons[] = { |
60 |
|
{ DATADIR"/pixmaps/xlog/cwdaemon.png", "xlog_stock_cwdaemon" }, |
61 |
|
}; |
62 |
|
|
63 |
|
static gint n_stock_icons = G_N_ELEMENTS (stock_icons); |
64 |
|
|
65 |
|
static void |
66 |
|
register_my_stock_icons (void) |
67 |
|
{ |
68 |
|
GtkIconFactory *icon_factory; |
69 |
|
GtkIconSet *icon_set; |
70 |
|
GtkIconSource *icon_source; |
71 |
|
gint i; |
72 |
|
|
73 |
|
icon_factory = gtk_icon_factory_new (); |
74 |
|
|
75 |
|
for (i = 0; i < n_stock_icons; i++) |
76 |
|
{ |
77 |
|
icon_set = gtk_icon_set_new (); |
78 |
|
icon_source = gtk_icon_source_new (); |
79 |
|
gtk_icon_source_set_filename (icon_source, stock_icons[i].filename); |
80 |
|
gtk_icon_set_add_source (icon_set, icon_source); |
81 |
|
gtk_icon_source_free (icon_source); |
82 |
|
gtk_icon_factory_add (icon_factory, stock_icons[i].stock_id, icon_set); |
83 |
|
gtk_icon_set_unref (icon_set); |
84 |
|
} |
85 |
|
gtk_icon_factory_add_default (icon_factory); |
86 |
|
g_object_unref (icon_factory); |
87 |
|
} |
88 |
|
|
89 |
GtkWidget* |
GtkWidget* |
90 |
create_mainwindow (void) |
create_mainwindow (void) |
91 |
{ |
{ |
159 |
{ "Trace Hamlib", GTK_STOCK_EXECUTE, N_("Trace Hamlib"), "", "Show hamlib debugging output", G_CALLBACK(on_trace_hamlib_activate) }, |
{ "Trace Hamlib", GTK_STOCK_EXECUTE, N_("Trace Hamlib"), "", "Show hamlib debugging output", G_CALLBACK(on_trace_hamlib_activate) }, |
160 |
#endif |
#endif |
161 |
{ "Sort", GTK_STOCK_SORT_ASCENDING, N_("Sort by Date"), "", "Sort log by date", G_CALLBACK(on_sort_log_activate) }, |
{ "Sort", GTK_STOCK_SORT_ASCENDING, N_("Sort by Date"), "", "Sort log by date", G_CALLBACK(on_sort_log_activate) }, |
162 |
|
{ "Keyer", "xlog_stock_cwdaemon", N_("Keyer"), "", "Activate keyer interface", G_CALLBACK(on_keyer_activate) }, |
163 |
|
|
164 |
{ "Defaults", GTK_STOCK_INDEX, N_("Defaults"), "", "Default values to use for logging", G_CALLBACK(on_menu_defaults_activate) }, |
{ "Defaults", GTK_STOCK_INDEX, N_("Defaults"), "", "Default values to use for logging", G_CALLBACK(on_menu_defaults_activate) }, |
165 |
{ "Dialogs", GTK_STOCK_JUSTIFY_FILL, N_("Dialogs"), "", "Settings for dialogs used", G_CALLBACK(on_menu_dialogs_activate) }, |
{ "Dialogs", GTK_STOCK_JUSTIFY_FILL, N_("Dialogs"), "", "Settings for dialogs used", G_CALLBACK(on_menu_dialogs_activate) }, |
196 |
static const char *ui_description = |
static const char *ui_description = |
197 |
"<ui>" |
"<ui>" |
198 |
" <menubar name='MainMenu'>" |
" <menubar name='MainMenu'>" |
199 |
" <menu action='LogMenu'>" |
" <menu action='LogMenu'>" |
200 |
" <menuitem action='New'/>" |
" <menuitem action='New'/>" |
201 |
" <menuitem action='Open'/>" |
" <menuitem action='Open'/>" |
202 |
" <separator name='sep1'/>" |
" <separator name='sep1'/>" |
203 |
" <menuitem action='Save'/>" |
" <menuitem action='Save'/>" |
204 |
" <menuitem action='Save As'/>" |
" <menuitem action='Save As'/>" |
205 |
" <menuitem action='Close'/>" |
" <menuitem action='Close'/>" |
206 |
" <separator name='sep2'/>" |
" <separator name='sep2'/>" |
207 |
" <menuitem action='Print'/>" |
" <menuitem action='Print'/>" |
208 |
" <menuitem action='Exit'/>" |
" <menuitem action='Exit'/>" |
209 |
" </menu>" |
" </menu>" |
210 |
" <menu action='EditMenu'>" |
" <menu action='EditMenu'>" |
211 |
" <menuitem action='Add'/>" |
" <menuitem action='Add'/>" |
212 |
" <menuitem action='Update'/>" |
" <menuitem action='Update'/>" |
213 |
" <menuitem action='Delete'/>" |
" <menuitem action='Delete'/>" |
214 |
" <separator name='sep3'/>" |
" <separator name='sep3'/>" |
215 |
" <menuitem action='Clear All'/>" |
" <menuitem action='Clear All'/>" |
216 |
" <menuitem action='Click All'/>" |
" <menuitem action='Click All'/>" |
217 |
" <separator name='sep4'/>" |
" <separator name='sep4'/>" |
218 |
" <menuitem action='Find'/>" |
" <menuitem action='Find'/>" |
219 |
" </menu>" |
" </menu>" |
220 |
" <menu action='OptionMenu'>" |
" <menu action='OptionMenu'>" |
221 |
" <menuitem action='ShowToolbar'/>" |
" <menuitem action='ShowToolbar'/>" |
222 |
" <menuitem action='WorkedBefore'/>" |
" <menuitem action='WorkedBefore'/>" |
223 |
" </menu>" |
" </menu>" |
224 |
" <menu action='ToolsMenu'>" |
" <menu action='ToolsMenu'>" |
225 |
" <menuitem action='Log Editor'/>" |
" <menuitem action='Log Editor'/>" |
226 |
" <menuitem action='Dupe Check'/>" |
" <menuitem action='Dupe Check'/>" |
227 |
#if WANT_HAMLIB |
#if WANT_HAMLIB |
228 |
" <menuitem action='Trace Hamlib'/>" |
" <menuitem action='Trace Hamlib'/>" |
229 |
#endif |
#endif |
230 |
" <menuitem action='Sort'/>" |
" <menuitem action='Sort'/>" |
231 |
" </menu>" |
" <separator name='sep'/>" |
232 |
" <menu action='TabsMenu'>" |
" <menuitem action='Keyer'/>" |
233 |
" <menuitem action='1'/>" |
" </menu>" |
234 |
" <menuitem action='2'/>" |
" <menu action='TabsMenu'>" |
235 |
" <menuitem action='3'/>" |
" <menuitem action='1'/>" |
236 |
" <menuitem action='4'/>" |
" <menuitem action='2'/>" |
237 |
" <menuitem action='5'/>" |
" <menuitem action='3'/>" |
238 |
" <menuitem action='6'/>" |
" <menuitem action='4'/>" |
239 |
" <menuitem action='7'/>" |
" <menuitem action='5'/>" |
240 |
" <menuitem action='8'/>" |
" <menuitem action='6'/>" |
241 |
" <menuitem action='9'/>" |
" <menuitem action='7'/>" |
242 |
" <menuitem action='10'/>" |
" <menuitem action='8'/>" |
243 |
" </menu>" |
" <menuitem action='9'/>" |
244 |
" <menu action='SettingsMenu'>" |
" <menuitem action='10'/>" |
245 |
" <menuitem action='Defaults'/>" |
" </menu>" |
246 |
" <menuitem action='Dialogs'/>" |
" <menu action='SettingsMenu'>" |
247 |
" <separator name='sep'/>" |
" <menuitem action='Defaults'/>" |
248 |
" <menuitem action='Preferences'/>" |
" <menuitem action='Dialogs'/>" |
249 |
" </menu>" |
" <separator name='sep'/>" |
250 |
" <menu action='HelpMenu'>" |
" <menuitem action='Preferences'/>" |
251 |
" <menu action='Documentation'>" |
" </menu>" |
252 |
" <menuitem action='Bugs'/>" |
" <menu action='HelpMenu'>" |
253 |
" <menuitem action='Changelog'/>" |
" <menu action='Documentation'>" |
254 |
" <menuitem action='Faq'/>" |
" <menuitem action='Bugs'/>" |
255 |
" <menuitem action='Manual'/>" |
" <menuitem action='Changelog'/>" |
256 |
" <menuitem action='Thanks'/>" |
" <menuitem action='Faq'/>" |
257 |
" <menuitem action='Todo'/>" |
" <menuitem action='Manual'/>" |
258 |
" </menu>" |
" <menuitem action='Thanks'/>" |
259 |
" <separator name='sep'/>" |
" <menuitem action='Todo'/>" |
260 |
" <menuitem action='About'/>" |
" </menu>" |
261 |
" </menu>" |
" <separator name='sep'/>" |
262 |
|
" <menuitem action='About'/>" |
263 |
|
" </menu>" |
264 |
" </menubar>" |
" </menubar>" |
265 |
" <toolbar name='ToolBar'>" |
" <toolbar name='ToolBar'>" |
266 |
" <toolitem action='Add'/>" |
" <toolitem action='Add'/>" |
267 |
" <toolitem action='Update'/>" |
" <toolitem action='Update'/>" |
268 |
" <toolitem action='Delete'/>" |
" <toolitem action='Delete'/>" |
269 |
" </toolbar>" |
" </toolbar>" |
270 |
"</ui>"; |
"</ui>"; |
271 |
|
|
272 |
|
register_my_stock_icons (); |
273 |
|
|
274 |
mainwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
mainwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
275 |
gtk_window_set_title (GTK_WINDOW (mainwindow), "xlog"); |
gtk_window_set_title (GTK_WINDOW (mainwindow), "xlog"); |
276 |
mainwindow_icon_pixbuf = create_pixbuf ("xlog.png"); |
mainwindow_icon_pixbuf = create_pixbuf ("xlog.png"); |
567 |
gtk_misc_set_padding (GTK_MISC (clocklabel), 5, 0); |
gtk_misc_set_padding (GTK_MISC (clocklabel), 5, 0); |
568 |
|
|
569 |
gtk_widget_show_all (mainvbox); |
gtk_widget_show_all (mainvbox); |
570 |
g_signal_connect ((gpointer) mainwindow, "delete_event", G_CALLBACK (on_mainwindow_delete_event), NULL); |
g_signal_connect ((gpointer) mainwindow, "delete_event", |
571 |
|
G_CALLBACK (on_mainwindow_delete_event), NULL); |
572 |
g_signal_connect ((gpointer) datebutton, "clicked", G_CALLBACK (on_datebutton_clicked), NULL); |
g_signal_connect ((gpointer) mainwindow, "key_press_event", |
573 |
g_signal_connect ((gpointer) gmtbutton, "clicked", G_CALLBACK (on_gmtbutton_clicked), NULL); |
G_CALLBACK (on_mainwindow_keypress), NULL); |
574 |
g_signal_connect ((gpointer) endbutton, "clicked", G_CALLBACK (on_endbutton_clicked), NULL); |
g_signal_connect ((gpointer) datebutton, "clicked", |
575 |
g_signal_connect ((gpointer) callentry, "insert_text", G_CALLBACK (on_callentry_insert_text), NULL); |
G_CALLBACK (on_datebutton_clicked), NULL); |
576 |
g_signal_connect ((gpointer) callentry, "changed", G_CALLBACK (on_callentry_changed), NULL); |
g_signal_connect ((gpointer) gmtbutton, "clicked", |
577 |
g_signal_connect ((gpointer) locatorentry, "changed", G_CALLBACK (on_locatorentry_changed), NULL); |
G_CALLBACK (on_gmtbutton_clicked), NULL); |
578 |
|
g_signal_connect ((gpointer) endbutton, "clicked", |
579 |
|
G_CALLBACK (on_endbutton_clicked), NULL); |
580 |
|
g_signal_connect ((gpointer) callentry, "insert_text", |
581 |
|
G_CALLBACK (on_callentry_insert_text), NULL); |
582 |
|
g_signal_connect ((gpointer) callentry, "changed", |
583 |
|
G_CALLBACK (on_callentry_changed), NULL); |
584 |
|
g_signal_connect ((gpointer) locatorentry, "changed", |
585 |
|
G_CALLBACK (on_locatorentry_changed), NULL); |
586 |
|
|
587 |
/* Store pointers to all widgets, for use by lookup_widget(). */ |
/* Store pointers to all widgets, for use by lookup_widget(). */ |
588 |
GLADE_HOOKUP_OBJECT_NO_REF (mainwindow, mainwindow, "mainwindow"); |
GLADE_HOOKUP_OBJECT_NO_REF (mainwindow, mainwindow, "mainwindow"); |