[gnome-latex: 55/205] Menu and toolbar in ui.c



commit b4f4442291485088a41df1e8655d73dcb3cccc33
Author: Sébastien Wilmet <sebastien wilmet gmail com>
Date:   Sat Sep 12 01:18:07 2009 +0200

    Menu and toolbar in ui.c

 TODO               |   2 +
 src/CMakeLists.txt |   3 +-
 src/main.c         | 177 ++--------------------------------------------
 src/ui.c           | 204 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ui.h           |   6 ++
 5 files changed, 218 insertions(+), 174 deletions(-)
---
diff --git a/TODO b/TODO
index 55363ec..325a9d4 100644
--- a/TODO
+++ b/TODO
@@ -11,6 +11,8 @@ Wed Sep 9, 2009 to Wed Sep 16, 2009
        x if the window is maximised
        x position of the panes
 
+[-] check memory leaks
+
 [-] new toolbar
        - structure: part, chapter, section, subsection, subsubsection, paragraph, subparagraph
        - font styles
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index bef189e..3f43944 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,7 +3,8 @@ SET(latexila_src main.c         main.h
                 print.c        print.h
                 symbols.c      symbols.h
                 actions.c      actions.h
-                prefs.c        prefs.h)
+                prefs.c        prefs.h
+                ui.c           ui.h)
 ADD_EXECUTABLE(latexila ${latexila_src})
 TARGET_LINK_LIBRARIES(latexila ${GTK2_LIBRARIES})
 
diff --git a/src/main.c b/src/main.c
index bf8fbec..bab5eda 100644
--- a/src/main.c
+++ b/src/main.c
@@ -32,48 +32,13 @@
 #include "symbols.h"
 #include "print.h"
 #include "prefs.h"
+#include "ui.h"
 
-static void register_my_stock_icons (void);
 static gboolean option_version (const gchar *option_name, const gchar *value,
                gpointer data, GError **error);
 
 latexila_t latexila = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-       NULL, NULL}; 
-
-static struct {
-       gchar *filename;
-       gchar *stock_id;
-} stock_icons[] = {
-       {DATA_DIR "/images/icons/compile_latex.png", "compile_latex"},
-       {DATA_DIR "/images/icons/compile_pdflatex.png", "compile_pdflatex"},
-       {DATA_DIR "/images/icons/view_dvi.png", "view_dvi"},
-       {DATA_DIR "/images/icons/view_pdf.png", "view_pdf"},
-       {DATA_DIR "/images/icons/view_ps.png", "view_ps"},
-       {DATA_DIR "/images/icons/dvi_to_pdf.png", "dvi_to_pdf"},
-       {DATA_DIR "/images/icons/dvi_to_ps.png", "dvi_to_ps"}
-};
-
-static gint n_stock_icons = G_N_ELEMENTS (stock_icons);
-
-static void
-register_my_stock_icons (void)
-{
-       GtkIconFactory *icon_factory = gtk_icon_factory_new ();
-
-       for (gint i = 0; i < n_stock_icons; i++)
-       {
-               GtkIconSet *icon_set = gtk_icon_set_new ();
-               GtkIconSource *icon_source = gtk_icon_source_new ();
-               gtk_icon_source_set_filename (icon_source, stock_icons[i].filename);
-               gtk_icon_set_add_source (icon_set, icon_source);
-               gtk_icon_source_free (icon_source);
-               gtk_icon_factory_add (icon_factory, stock_icons[i].stock_id, icon_set);
-               gtk_icon_set_unref (icon_set);
-       }
-
-       gtk_icon_factory_add_default (icon_factory);
-       g_object_unref (icon_factory);
-}
+       NULL, NULL, NULL, NULL, NULL}; 
 
 static gboolean
 option_version (const gchar *option_name, const gchar *value, gpointer data,
@@ -178,146 +143,12 @@ main (int argc, char *argv[])
        if (latexila.prefs->window_maximised)
                gtk_window_maximize (GTK_WINDOW (window));
 
-       /* boxes */
+       /* menubar and toolbar */
        GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0);
        gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
-       /* menubar and toolbar */
-       register_my_stock_icons ();
+       init_ui (main_vbox);
        
-       // all the actions (for the menu and the toolbar)
-       // {name, stock_id, label, accelerator, tooltip, callback}
-       // the names come from the XML file
-       //
-       // TODO try to place "entries" out of the main function without errors
-       // because of gettext (the _() macro)
-       GtkActionEntry entries[] = {
-               {"File", NULL, _("File"), NULL, NULL, NULL},
-               {"FileNew", GTK_STOCK_NEW, _("New"), "<Control>N",
-                       _("New file"), G_CALLBACK (cb_new)},
-               {"FileOpen", GTK_STOCK_OPEN, _("Open..."), "<Control>O",
-                       _("Open a file"), G_CALLBACK (cb_open)},
-               {"FileSave", GTK_STOCK_SAVE, _("Save..."), "<Control>S",
-                       _("Save the current file"), G_CALLBACK (cb_save)},
-               {"FileSaveAs", GTK_STOCK_SAVE_AS, _("Save as..."), "<Shift><Control>S",
-                       _("Save the current file with a different name"), G_CALLBACK (cb_save_as)},
-               {"FileClose", GTK_STOCK_CLOSE, _("Close"), "<Control>W",
-                       _("Close the current file"), G_CALLBACK (cb_close)},
-               {"FileQuit", GTK_STOCK_QUIT, _("Quit"), "<Control>Q",
-                       _("Quit the program"), G_CALLBACK (cb_quit)},
-               
-               {"Edit", NULL, _("Edit"), NULL, NULL, NULL},
-               {"EditUndo", GTK_STOCK_UNDO, _("Undo"), "<Control>Z",
-                       _("Undo the last action"), G_CALLBACK (cb_undo)},
-               {"EditRedo", GTK_STOCK_REDO, _("Redo"), "<Shift><Control>Z",
-                       _("Redo the last undone action"), G_CALLBACK (cb_redo)},
-               {"EditCut", GTK_STOCK_CUT, _("Cut"), "<Control>X",
-                       _("Cut the selection"), G_CALLBACK (cb_cut)},
-               {"EditCopy", GTK_STOCK_COPY, _("Copy"), "<Control>C",
-                       _("Copy the selection"), G_CALLBACK (cb_copy)},
-               {"EditPaste", GTK_STOCK_PASTE, _("Paste"), "<Control>V",
-                       _("Paste the clipboard"), G_CALLBACK (cb_paste)},
-               {"EditDelete", GTK_STOCK_DELETE, _("Delete"), NULL,
-                       _("Delete the selected text"), G_CALLBACK (cb_delete)},
-               {"EditSelectAll", GTK_STOCK_SELECT_ALL, _("Select All"), "<Control>A",
-                       _("Select the entire document"), G_CALLBACK (cb_select_all)},
-               {"EditPreferences", GTK_STOCK_PREFERENCES, _("Preferences"), NULL,
-                       _("Configure the application"), G_CALLBACK (cb_preferences)},
-
-               {"View", NULL, _("View"), NULL, NULL, NULL},
-               {"ViewZoomIn", GTK_STOCK_ZOOM_IN, _("Zoom In"), "<Control>plus",
-                       _("Enlarge the font"), G_CALLBACK (cb_zoom_in)},
-               {"ViewZoomOut", GTK_STOCK_ZOOM_OUT, _("Zoom Out"), "<Control>minus",
-                       _("Shrink the font"), G_CALLBACK (cb_zoom_out)},
-               {"ViewZoomReset", GTK_STOCK_ZOOM_100, _("Reset Zoom"), "<Control>0",
-                       _("Reset the size of the font"), G_CALLBACK (cb_zoom_reset)},
-
-               {"Search", NULL, _("Search"), NULL, NULL, NULL},
-               {"SearchFind", GTK_STOCK_FIND, _("Find..."), "<Control>F",
-                       _("Search for text"), G_CALLBACK (cb_find)},
-               {"SearchReplace", GTK_STOCK_FIND_AND_REPLACE, _("Replace..."), "<Control>H",
-                       _("Search for and replace text"), G_CALLBACK (cb_replace)},
-               
-               {"Build", NULL, _("Build"), NULL, NULL, NULL},
-               {"compile_latex", "compile_latex", _("Compile (latex)"), "<Release>F5",
-                       _("Produce the document in DVI format"), G_CALLBACK (cb_latex)},
-               {"viewDVI", "view_dvi", _("View DVI"), "<Release>F6",
-                       _("View the DVI file"), G_CALLBACK (cb_view_dvi)},
-               {"compile_pdflatex", "compile_pdflatex", _("Compile (pdflatex)"), "<Release>F7",
-                       _("Produce the document in PDF format"), G_CALLBACK (cb_pdflatex)},
-               {"viewPDF", "view_pdf", _("View PDF"), "<Release>F8",
-                       _("View the PDF file"), G_CALLBACK (cb_view_pdf)},
-               {"DVItoPDF", "dvi_to_pdf", _("DVI to PDF"), NULL,
-                       _("Convert the DVI document to the PDF format"), G_CALLBACK (cb_dvi_to_pdf)},
-               {"DVItoPS", "dvi_to_ps", _("DVI to PS"), NULL,
-                       _("Convert the DVI document to the PostScript format"), G_CALLBACK (cb_dvi_to_ps)},
-               {"viewPS", "view_ps", _("View PS"), NULL,
-                       _("View the PostScript file"), G_CALLBACK (cb_view_ps)},
-               
-               {"Help", NULL, _("Help"), NULL, NULL, NULL},
-               {"HelpAbout", GTK_STOCK_ABOUT, _("About"), NULL,
-                       _("About LaTeXila"), G_CALLBACK (cb_about_dialog)}
-       };
-
-       // {name, stock_id, label, accelerator, tooltip, callback}
-       GtkToggleActionEntry toggle_entries[] = {
-               {"ViewSymbols", NULL, _("Symbol tables"), NULL,
-                       _("Show or hide the symbol tables in the current window"),
-                       G_CALLBACK (cb_show_symbol_tables)}
-       };
-
-       guint nb_entries = G_N_ELEMENTS (entries);
-       guint nb_toggle_entries = G_N_ELEMENTS (toggle_entries);
-
-       // recent document
-       GtkAction *recent = gtk_recent_action_new ("FileOpenRecent",
-                       _("Open Recent"), _("Open recently used files"), NULL);
-       g_signal_connect (G_OBJECT (recent), "item-activated",
-                       G_CALLBACK (cb_recent_item_activated), NULL);
-
-       GtkRecentFilter *filter = gtk_recent_filter_new ();
-       gtk_recent_filter_add_application (filter, "latexila");
-       gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (recent), filter);
-
-       // create the action group and the ui manager
-       GtkActionGroup *action_group = gtk_action_group_new ("menuActionGroup");
-       gtk_action_group_add_actions (action_group, entries, nb_entries, NULL);
-       gtk_action_group_add_toggle_actions (action_group, toggle_entries,
-                       nb_toggle_entries, NULL);
-       gtk_action_group_add_action (action_group, recent);
-       GtkUIManager *ui_manager = gtk_ui_manager_new ();
-       gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
-
-       // load the xml file
-       gchar *xml_file = DATA_DIR "/ui.xml";
-       gtk_ui_manager_add_ui_from_file (ui_manager, xml_file, &error);
-       if (error != NULL)
-       {
-               print_error ("building menubar and toolbar failed: %s", error->message);
-               g_error_free (error);
-               error = NULL;
-       }
-
-       // get and put the menubar and the toolbar to the main vbox
-       GtkWidget *menubar = gtk_ui_manager_get_widget (ui_manager, "/MainMenu");
-       gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, FALSE, 0);
-       GtkWidget *toolbar = gtk_ui_manager_get_widget (ui_manager, "/MainToolbar");
-       // toolbar with icons only
-       gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
-       gtk_box_pack_start (GTK_BOX (main_vbox), toolbar, FALSE, FALSE, 0);
-
-       // accelerators
-       gtk_window_add_accel_group (GTK_WINDOW (window), 
-                       gtk_ui_manager_get_accel_group (ui_manager));
-
-       // get actions
-       latexila.undo = gtk_action_group_get_action (action_group, "EditUndo");
-       latexila.redo = gtk_action_group_get_action (action_group, "EditRedo");
-       GtkToggleAction *show_symbol_tables = GTK_TOGGLE_ACTION (
-                       gtk_action_group_get_action (action_group, "ViewSymbols"));
-       gtk_toggle_action_set_active (show_symbol_tables,
-                       latexila.prefs->show_side_pane);
-
        /* horizontal pane
         * left: symbol tables
         * right: the source view and the log zone
diff --git a/src/ui.c b/src/ui.c
new file mode 100644
index 0000000..6e8d628
--- /dev/null
+++ b/src/ui.c
@@ -0,0 +1,204 @@
+/*
+ * This file is part of LaTeXila.
+ *
+ * Copyright © 2009 Sébastien Wilmet
+ *
+ * LaTeXila is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * LaTeXila is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with LaTeXila.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <locale.h>
+#include <libintl.h>
+#include <gtk/gtk.h>
+#include <gtksourceview/gtksourceview.h>
+
+#include "main.h"
+#include "config.h"
+#include "print.h"
+#include "callbacks.h"
+
+static void register_my_stock_icons (void);
+
+static struct {
+       gchar *filename;
+       gchar *stock_id;
+} stock_icons[] = {
+       {DATA_DIR "/images/icons/compile_latex.png", "compile_latex"},
+       {DATA_DIR "/images/icons/compile_pdflatex.png", "compile_pdflatex"},
+       {DATA_DIR "/images/icons/view_dvi.png", "view_dvi"},
+       {DATA_DIR "/images/icons/view_pdf.png", "view_pdf"},
+       {DATA_DIR "/images/icons/view_ps.png", "view_ps"},
+       {DATA_DIR "/images/icons/dvi_to_pdf.png", "dvi_to_pdf"},
+       {DATA_DIR "/images/icons/dvi_to_ps.png", "dvi_to_ps"}
+};
+
+// all the actions (for the menu and the toolbar)
+// {name, stock_id, label, accelerator, tooltip, callback}
+// the names come from the XML file
+static GtkActionEntry entries[] = {
+       {"File", NULL, N_("File"), NULL, NULL, NULL},
+       {"FileNew", GTK_STOCK_NEW, N_("New"), "<Control>N",
+               N_("New file"), G_CALLBACK (cb_new)},
+       {"FileOpen", GTK_STOCK_OPEN, N_("Open..."), "<Control>O",
+               N_("Open a file"), G_CALLBACK (cb_open)},
+       {"FileSave", GTK_STOCK_SAVE, N_("Save..."), "<Control>S",
+               N_("Save the current file"), G_CALLBACK (cb_save)},
+       {"FileSaveAs", GTK_STOCK_SAVE_AS, N_("Save as..."), "<Shift><Control>S",
+               N_("Save the current file with a different name"), G_CALLBACK (cb_save_as)},
+       {"FileClose", GTK_STOCK_CLOSE, N_("Close"), "<Control>W",
+               N_("Close the current file"), G_CALLBACK (cb_close)},
+       {"FileQuit", GTK_STOCK_QUIT, N_("Quit"), "<Control>Q",
+               N_("Quit the program"), G_CALLBACK (cb_quit)},
+       
+       {"Edit", NULL, N_("Edit"), NULL, NULL, NULL},
+       {"EditUndo", GTK_STOCK_UNDO, N_("Undo"), "<Control>Z",
+               N_("Undo the last action"), G_CALLBACK (cb_undo)},
+       {"EditRedo", GTK_STOCK_REDO, N_("Redo"), "<Shift><Control>Z",
+               N_("Redo the last undone action"), G_CALLBACK (cb_redo)},
+       {"EditCut", GTK_STOCK_CUT, N_("Cut"), "<Control>X",
+               N_("Cut the selection"), G_CALLBACK (cb_cut)},
+       {"EditCopy", GTK_STOCK_COPY, N_("Copy"), "<Control>C",
+               N_("Copy the selection"), G_CALLBACK (cb_copy)},
+       {"EditPaste", GTK_STOCK_PASTE, N_("Paste"), "<Control>V",
+               N_("Paste the clipboard"), G_CALLBACK (cb_paste)},
+       {"EditDelete", GTK_STOCK_DELETE, N_("Delete"), NULL,
+               N_("Delete the selected text"), G_CALLBACK (cb_delete)},
+       {"EditSelectAll", GTK_STOCK_SELECT_ALL, N_("Select All"), "<Control>A",
+               N_("Select the entire document"), G_CALLBACK (cb_select_all)},
+       {"EditPreferences", GTK_STOCK_PREFERENCES, N_("Preferences"), NULL,
+               N_("Configure the application"), G_CALLBACK (cb_preferences)},
+
+       {"View", NULL, N_("View"), NULL, NULL, NULL},
+       {"ViewZoomIn", GTK_STOCK_ZOOM_IN, N_("Zoom In"), "<Control>plus",
+               N_("Enlarge the font"), G_CALLBACK (cb_zoom_in)},
+       {"ViewZoomOut", GTK_STOCK_ZOOM_OUT, N_("Zoom Out"), "<Control>minus",
+               N_("Shrink the font"), G_CALLBACK (cb_zoom_out)},
+       {"ViewZoomReset", GTK_STOCK_ZOOM_100, N_("Reset Zoom"), "<Control>0",
+               N_("Reset the size of the font"), G_CALLBACK (cb_zoom_reset)},
+
+       {"Search", NULL, N_("Search"), NULL, NULL, NULL},
+       {"SearchFind", GTK_STOCK_FIND, N_("Find..."), "<Control>F",
+               N_("Search for text"), G_CALLBACK (cb_find)},
+       {"SearchReplace", GTK_STOCK_FIND_AND_REPLACE, N_("Replace..."), "<Control>H",
+               N_("Search for and replace text"), G_CALLBACK (cb_replace)},
+       
+       {"Build", NULL, N_("Build"), NULL, NULL, NULL},
+       {"compile_latex", "compile_latex", N_("Compile (latex)"), "<Release>F5",
+               N_("Produce the document in DVI format"), G_CALLBACK (cb_latex)},
+       {"viewDVI", "view_dvi", N_("View DVI"), "<Release>F6",
+               N_("View the DVI file"), G_CALLBACK (cb_view_dvi)},
+       {"compile_pdflatex", "compile_pdflatex", N_("Compile (pdflatex)"), "<Release>F7",
+               N_("Produce the document in PDF format"), G_CALLBACK (cb_pdflatex)},
+       {"viewPDF", "view_pdf", N_("View PDF"), "<Release>F8",
+               N_("View the PDF file"), G_CALLBACK (cb_view_pdf)},
+       {"DVItoPDF", "dvi_to_pdf", N_("DVI to PDF"), NULL,
+               N_("Convert the DVI document to the PDF format"), G_CALLBACK (cb_dvi_to_pdf)},
+       {"DVItoPS", "dvi_to_ps", N_("DVI to PS"), NULL,
+               N_("Convert the DVI document to the PostScript format"), G_CALLBACK (cb_dvi_to_ps)},
+       {"viewPS", "view_ps", N_("View PS"), NULL,
+               N_("View the PostScript file"), G_CALLBACK (cb_view_ps)},
+       
+       {"Help", NULL, N_("Help"), NULL, NULL, NULL},
+       {"HelpAbout", GTK_STOCK_ABOUT, N_("About"), NULL,
+               N_("About LaTeXila"), G_CALLBACK (cb_about_dialog)}
+};
+
+// {name, stock_id, label, accelerator, tooltip, callback}
+static GtkToggleActionEntry toggle_entries[] = {
+       {"ViewSymbols", NULL, N_("Symbol tables"), NULL,
+               N_("Show or hide the symbol tables in the current window"),
+               G_CALLBACK (cb_show_symbol_tables)}
+};
+
+static guint n_stock_icons = G_N_ELEMENTS (stock_icons);
+static guint nb_entries = G_N_ELEMENTS (entries);
+static guint nb_toggle_entries = G_N_ELEMENTS (toggle_entries);
+
+static void
+register_my_stock_icons (void)
+{
+       GtkIconFactory *icon_factory = gtk_icon_factory_new ();
+
+       for (gint i = 0; i < n_stock_icons; i++)
+       {
+               GtkIconSet *icon_set = gtk_icon_set_new ();
+               GtkIconSource *icon_source = gtk_icon_source_new ();
+               gtk_icon_source_set_filename (icon_source, stock_icons[i].filename);
+               gtk_icon_set_add_source (icon_set, icon_source);
+               gtk_icon_source_free (icon_source);
+               gtk_icon_factory_add (icon_factory, stock_icons[i].stock_id, icon_set);
+               gtk_icon_set_unref (icon_set);
+       }
+
+       gtk_icon_factory_add_default (icon_factory);
+       g_object_unref (icon_factory);
+}
+
+void
+init_ui (GtkWidget *box)
+{
+       GError *error = NULL;
+
+       register_my_stock_icons ();
+
+       // recent document
+       GtkAction *recent = gtk_recent_action_new ("FileOpenRecent",
+                       _("Open Recent"), _("Open recently used files"), NULL);
+       g_signal_connect (G_OBJECT (recent), "item-activated",
+                       G_CALLBACK (cb_recent_item_activated), NULL);
+
+       GtkRecentFilter *filter = gtk_recent_filter_new ();
+       gtk_recent_filter_add_application (filter, "latexila");
+       gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (recent), filter);
+
+       // create the action group and the ui manager
+       GtkActionGroup *action_group = gtk_action_group_new ("menuActionGroup");
+       gtk_action_group_add_actions (action_group, entries, nb_entries, NULL);
+       gtk_action_group_add_toggle_actions (action_group, toggle_entries,
+                       nb_toggle_entries, NULL);
+       gtk_action_group_add_action (action_group, recent);
+       GtkUIManager *ui_manager = gtk_ui_manager_new ();
+       gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
+
+       // load the xml file
+       gchar *xml_file = DATA_DIR "/ui.xml";
+       gtk_ui_manager_add_ui_from_file (ui_manager, xml_file, &error);
+       if (error != NULL)
+       {
+               print_error ("building menubar and toolbar failed: %s", error->message);
+               g_error_free (error);
+               error = NULL;
+       }
+
+       // get and put the menubar and the toolbar to the main vbox
+       GtkWidget *menubar = gtk_ui_manager_get_widget (ui_manager, "/MainMenu");
+       gtk_box_pack_start (GTK_BOX (box), menubar, FALSE, FALSE, 0);
+       GtkWidget *toolbar = gtk_ui_manager_get_widget (ui_manager, "/MainToolbar");
+       // toolbar with icons only
+       gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
+       gtk_box_pack_start (GTK_BOX (box), toolbar, FALSE, FALSE, 0);
+
+       // accelerators
+       gtk_window_add_accel_group (latexila.main_window, 
+                       gtk_ui_manager_get_accel_group (ui_manager));
+
+       // get actions
+       latexila.undo = gtk_action_group_get_action (action_group, "EditUndo");
+       latexila.redo = gtk_action_group_get_action (action_group, "EditRedo");
+       GtkToggleAction *show_symbol_tables = GTK_TOGGLE_ACTION (
+                       gtk_action_group_get_action (action_group, "ViewSymbols"));
+       gtk_toggle_action_set_active (show_symbol_tables,
+                       latexila.prefs->show_side_pane);
+}
diff --git a/src/ui.h b/src/ui.h
new file mode 100644
index 0000000..3c19cca
--- /dev/null
+++ b/src/ui.h
@@ -0,0 +1,6 @@
+#ifndef UI_H
+#define UI_H
+
+void init_ui (GtkWidget *box);
+
+#endif /* UI_H */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]