a8a5ff59acce34e289aab17b8617228c9bc7816e
[projects/chimara/chimara.git] / player / app.h
1 /*
2  * Copyright (C) 2008, 2009, 2010, 2011 Philip Chimento and Marijn van Vliet.
3  * All rights reserved.
4  *
5  * Chimara is free software copyrighted by Philip Chimento and Marijn van Vliet.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice,
11  *    this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright notice,
13  *    this list of conditions and the following disclaimer in the documentation
14  *    and/or other materials provided with the distribution.
15  * 3. Neither of the names Philip Chimento or Marijn van Vliet, nor the name of
16  *    any other contributor may be used to endorse or promote products derived
17  *    from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31
32 #ifndef __APP_H__
33 #define __APP_H__
34
35 #include <glib-object.h>
36 #include <gio/gio.h>
37 #include <gtk/gtk.h>
38
39 G_BEGIN_DECLS
40
41 #define CHIMARA_TYPE_APP            (chimara_app_get_type())
42 #define CHIMARA_APP(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), CHIMARA_TYPE_APP, ChimaraApp))
43 #define CHIMARA_APP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass), CHIMARA_TYPE_APP, ChimaraAppClass))
44 #define CHIMARA_IS_APP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), CHIMARA_TYPE_APP))
45 #define CHIMARA_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), CHIMARA_TYPE_APP))
46 #define CHIMARA_APP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), CHIMARA_TYPE_APP, ChimaraAppClass))
47
48 typedef struct _ChimaraApp {
49         GObject parent_instance;
50         
51         /* Public pointers */
52         GtkWidget *browser_window;
53         GtkWidget *aboutwindow;
54         GtkWidget *prefswindow;
55         /* Public settings */
56         GSettings *prefs_settings;
57         GSettings *state_settings;
58 } ChimaraApp;
59
60 typedef struct _ChimaraAppClass {
61         GObjectClass parent_class;
62 } ChimaraAppClass;
63
64 GType chimara_app_get_type(void) G_GNUC_CONST;
65 ChimaraApp *chimara_app_get(void);
66 GtkActionGroup *chimara_app_get_action_group(ChimaraApp *self);
67
68 G_END_DECLS
69
70 #endif /* __APP_H__ */