summaryrefslogtreecommitdiffstats
path: root/src/sonancy-app.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sonancy-app.c')
-rw-r--r--src/sonancy-app.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/sonancy-app.c b/src/sonancy-app.c
new file mode 100644
index 0000000..895b472
--- /dev/null
+++ b/src/sonancy-app.c
@@ -0,0 +1,93 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2009 Brian Pepple
+ *
+ * This program 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 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <glib.h>
+
+#include "sonancy-app.h"
+
+static SonancyApp *default_app = NULL;
+
+G_DEFINE_TYPE (SonancyApp, sonancy_app, G_TYPE_OBJECT);
+
+static void
+on_window_destroy (GtkWidget *widget,
+ SonancyApp *app)
+{
+ app->main_window = NULL;
+
+ gtk_main_quit ();
+}
+
+static void
+sonancy_app_class_init (SonancyAppClass *klass)
+{
+}
+
+static void
+sonancy_app_init (SonancyApp *app)
+{
+
+}
+
+SonancyApp *
+sonancy_app_get_default (int *argc,
+ char ***argv,
+ GError **error)
+{
+ if (!default_app) {
+ gtk_init (argc, argv);
+
+ default_app = g_object_new (SONANCY_TYPE_APP, NULL);
+ }
+
+ return default_app;
+}
+
+gboolean
+sonancy_app_is_running (SonancyApp *app)
+{
+ g_return_val_if_fail (SONANCY_IS_APP (app), FALSE);
+
+ return app->is_running;
+}
+
+gint
+sonancy_app_run (SonancyApp *app)
+{
+ g_return_val_if_fail (SONANCY_IS_APP (app), EXIT_FAILURE);
+ g_return_val_if_fail (!sonancy_app_is_running (app), EXIT_SUCCESS);
+/*
+ app->main_window = sonancy_window_new ();
+ g_signal_connect (app->main_window,
+ "destroy", G_CALLBACK (on_window_destroy),
+ app);
+*/
+ gtk_main ();
+
+ return EXIT_SUCCESS;
+}