00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00025 #include <glib.h>
00026 #include <gdk/gdkkeysyms.h>
00027 #include <gtk/gtk.h>
00028 #include <librsvg/rsvg.h>
00029 #include <stdio.h>
00030 #include <stdlib.h>
00031
00032 #include "application-data.h"
00033 #include "constants.h"
00034 #include "frame-common.h"
00035 #include "frame-actions.h"
00036 #include "frame-new-dialog.h"
00037 #include "frame-open-panel.h"
00038 #include "frame-saving.h"
00039 #include "frame-table.h"
00040 #include "log-player.h"
00041 #include "notebook.h"
00042
00043
00044
00057 int main (int argc, char *argv[])
00058 {
00059 synema_instance_t *inst = NULL;
00060 GtkWidget *window = NULL;
00061 GtkWidget *add_tab_button = NULL;
00062 GtkWidget *frame_box = NULL;
00063
00064 g_thread_init (NULL);
00065 gdk_threads_init();
00066 gdk_threads_enter ();
00067 gtk_init (&argc, &argv);
00068 rsvg_init ();
00069 dbus_g_thread_init ();
00070 g_set_application_name (APP_NAME);
00071 inst = synema_instance ();
00072
00073
00074
00075 window = (GtkWidget *) gtk_builder_get_object (inst->builder, "synema_window");
00076 g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (pre_quit_save_frames), NULL);
00077
00078
00079
00080 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_add"),
00081 "clicked", G_CALLBACK (frame_on_new),
00082 (gpointer) inst->builder);
00083 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_player"),
00084 "clicked", G_CALLBACK (toggle_panels), GINT_TO_POINTER (PANEL_PLAYER));
00085 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_open_tab"),
00086 "clicked", G_CALLBACK (toggle_panels), GINT_TO_POINTER (PANEL_OPEN));
00087 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_actions"),
00088 "clicked", G_CALLBACK (toggle_panels), GINT_TO_POINTER (PANEL_ACTIONS));
00089 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_save_tab"),
00090 "clicked", G_CALLBACK (save_frames_dialog_show), NULL);
00091 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_quit"),
00092 "clicked", G_CALLBACK (pre_quit_save_frames), NULL);
00093
00094
00095
00096 add_tab_button = (GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_add_tab");
00097 frame_box = (GtkWidget *) gtk_builder_get_object (inst->builder, "notebook");
00098 g_signal_connect (frame_box, "page_added", G_CALLBACK (notebook_on_page_added), NULL);
00099 g_signal_connect (frame_box, "page_removed", G_CALLBACK (notebook_on_page_removed), NULL);
00100 g_signal_connect (frame_box, "switch_page", G_CALLBACK (notebook_on_page_switch), NULL);
00101 g_signal_connect (add_tab_button, "clicked", G_CALLBACK (notebook_add_page), frame_box);
00102 g_signal_connect ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_settings"), "clicked", G_CALLBACK (settings_dialog_show), NULL);
00103
00104
00105
00106 if (inst->settings->autosave_frames)
00107 post_init_restore_frames ();
00108
00109
00110 if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (frame_box)) == 0)
00111 _notebook_add_page (frame_box, NULL);
00112
00113
00114
00115 gtk_window_maximize (GTK_WINDOW (window));
00116 gtk_widget_show_all (window);
00117
00118
00119
00120 frame_action_setup_widgets ();
00121 frame_open_setup_widgets ();
00122 player_setup_widgets ();
00123 toggle_panels (GTK_TOOL_BUTTON ((GtkWidget *) gtk_builder_get_object (inst->builder, "toolbutton_player")), GINT_TO_POINTER (PANEL_NONE));
00124
00125 gtk_main ();
00126
00127 synema_instance_free ();
00128 rsvg_term ();
00129 gdk_threads_leave ();
00130
00131 return EXIT_SUCCESS;
00132 }