/gpump/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/gpump/trunk
20 by Gustav Hatvigsson
* Added a singeltonian class to keep settings data in.
1
/* c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil
2
 * vi: set shiftwidth=2 tabstop=2 expandtab:
3
 * :indentSize=2:tabSize=2:noTabs=true:
4
 */
5
6
#ifndef __H_GPUMP_SETTINGS_DATA__
7
#define __H_GPUMP_SETTINGS_DATA__
8
9
#include <gtk/gtk.h>
10
#include <gio/gio.h>
11
#include <rest/oauth2-proxy.h>
12
#include <rest/rest-proxy-call.h>
13
#include <stdlib.h>
14
#include <string.h>
15
#include <glib/gi18n.h>
16
17
#define GPUMP_TYPE_SETTINGS_DATA              (gpump_settings_data_get_type ())
18
#define GPUMP_SETTINGS_DATA(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj), GPUMP_TYPE_SETTINGS_DATA, GPumpSettingsData))
19
#define GPUMP_SETTINGS_DATA_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), GPUMP_TYPE_SETTINGS_DATA, GPumpSettingsDataClass))
20
#define GPUMP_IS_SETTINGS_DATA(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), GPUMP_TYPE_SETTINGS_DATA))
21
#define GPUMP_IS_SETTINGS_DATA_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GPUMP_TYPE_SETTINGS_DATA))
22
#define GPUMP_SETTINGS_DATA_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), GPUMP_TYPE_SETTINGS_DATA, GPumpSettingsDataClass))
23
24
typedef struct GPumpSettingsData GPumpSettingsData;
25
typedef struct GPumpSettingsDataClass GPumpSettingsDataClass;
26
typedef struct GPumpSettingsDataPrivate GPumpSettingsDataPrivate;
27
28
/* 
29
 * NAMESPACE: gpump_*
30
 *
31
 * CLASS NAMESPACE: gpump_settings_data_*
32
 */
33
34
/**
35
 * A class that holds the settings data.
36
 *
37
 * the reason for this is to split data and wiev, simplefying the data modle
38
 * and what not.
39
 *
40
 * This is a singletonian class, to get the instance use the provided
41
 * gpump_settings_data_get_default () function.
42
 *
43
 * Pleace note that this is not thread safe, and should be used with care.
44
 */
45
struct GPumpSettingsData {
46
  GObject parent;
47
  
48
  /* org.gego.gpump.ui */
49
  GSettings * ui_settings;
50
  /* org.gego.gpump */
51
  GSettings * gpump_settings;
52
};
53
54
struct GPumpSettingsDataClass {
55
  GObjectClass parent;
56
};
57
58
59
/**
60
 * Create a GPumpSettingsData instance if it does not already exist,
61
 * if it exists return a pointer to the object.
62
 *
63
 * The object's reference count is incleased every time this is called, so
64
 * you need to unref it whet you are done with it.
65
 */
66
GPumpSettingsData * gpump_settings_data_get_default ();
67
68
69
#endif /* #ifndef __H_GPUMP_SETTINGS_DATA__*/