/gpump/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/gpump/trunk

« back to all changes in this revision

Viewing changes to src/GPumpSettingsData.h

  • Committer: Gustav Hartvigsson
  • Date: 2014-02-09 20:15:21 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20140209201521-mvjdpy9lpkguhft7
* changed the icons in the widget UI to Symoblic.
* changed from GtkTreeView to GtkListBox. This should make things
  in the future

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
/**
10
 
 * If this is set, it will use GSettings, otherwise it will use GKeyFile
11
 
 * and store store the data in a .ini format conf file in the configuration
12
 
 * directory.
13
 
 */
14
 
#define GPUMP_USE_GSETTINGS 0
15
 
 
16
 
#include <gtk/gtk.h>
17
 
#include <gio/gio.h>
18
 
#include <rest/oauth2-proxy.h>
19
 
#include <rest/rest-proxy-call.h>
20
 
#include <stdlib.h>
21
 
#include <string.h>
22
 
#include <glib/gi18n.h>
23
 
 
24
 
#define GPUMP_TYPE_SETTINGS_DATA              (gpump_settings_data_get_type ())
25
 
#define GPUMP_SETTINGS_DATA(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj), GPUMP_TYPE_SETTINGS_DATA, GPumpSettingsData))
26
 
#define GPUMP_SETTINGS_DATA_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), GPUMP_TYPE_SETTINGS_DATA, GPumpSettingsDataClass))
27
 
#define GPUMP_IS_SETTINGS_DATA(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), GPUMP_TYPE_SETTINGS_DATA))
28
 
#define GPUMP_IS_SETTINGS_DATA_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GPUMP_TYPE_SETTINGS_DATA))
29
 
#define GPUMP_SETTINGS_DATA_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), GPUMP_TYPE_SETTINGS_DATA, GPumpSettingsDataClass))
30
 
 
31
 
typedef struct GPumpSettingsData GPumpSettingsData;
32
 
typedef struct GPumpSettingsDataClass GPumpSettingsDataClass;
33
 
typedef struct GPumpSettingsDataPrivate GPumpSettingsDataPrivate;
34
 
 
35
 
/* 
36
 
 * NAMESPACE: gpump_*
37
 
 *
38
 
 * CLASS NAMESPACE: gpump_settings_data_*
39
 
 */
40
 
 
41
 
/**
42
 
 * A class that holds the settings data.
43
 
 *
44
 
 * the reason for this is to split data and wiev, simplefying the data modle
45
 
 * and what not.
46
 
 *
47
 
 * This is a singletonian class, to get the instance use the provided
48
 
 * gpump_settings_data_get_default () function.
49
 
 *
50
 
 * Pleace note that this is not thread safe, and should be used with care.
51
 
 */
52
 
struct GPumpSettingsData {
53
 
  GObject parent;
54
 
  
55
 
  /* Private data is defined in the C file. */
56
 
  GPumpSettingsDataPrivate * priv;
57
 
};
58
 
 
59
 
struct GPumpSettingsDataClass {
60
 
  GObjectClass parent;
61
 
};
62
 
 
63
 
 
64
 
/**
65
 
 * Create a GPumpSettingsData instance if it does not already exist,
66
 
 * if it exists return a pointer to the object.
67
 
 *
68
 
 * The object's reference count is increased every time this is called, so
69
 
 * you need to unref it whet you are done with it.
70
 
 */
71
 
GPumpSettingsData * gpump_settings_data_get_default ();
72
 
 
73
 
/**
74
 
 * Sets a value in the.
75
 
 *
76
 
 * valid names are:
77
 
 * - ui-x
78
 
 * - ui-y
79
 
 * - ui-h
80
 
 * - ui-w
81
 
 * - main-use-dark
82
 
 * 
83
 
 * if the app is compiled in non-gsettings mode, you will have to use
84
 
 * gpump_settings_data_commit ()  whet to commit the changes.
85
 
 *
86
 
 * @param self the object to perform the operation on.
87
 
 * @param name the name of the setting to change.
88
 
 * @param data the a GVariant that contains the data that should be set.
89
 
 *
90
 
 * If the data type in the data does not match the expected value type, the
91
 
 * value will not be set.
92
 
 */
93
 
void gpump_settings_data_set (GPumpSettingsData * self,
94
 
                              gchar * name,
95
 
                              GVariant * data);
96
 
 
97
 
 
98
 
/**
99
 
 * Gets the data given a name, see gpump_settings_data_set's documentation
100
 
 * for more information.
101
 
 *
102
 
 * @param self the object to get the data from.
103
 
 * @param name the name of the value to be returned
104
 
 *
105
 
 * @returns a GValiant containing the value of that was requested.
106
 
 */
107
 
GVariant * gpump_settings_data_get (GPumpSettingsData * self,
108
 
                                    gchar * name);
109
 
 
110
 
/**
111
 
 * Commit the the changes to file, only usefile when using compiled in
112
 
 * non-GSettings mode. In GSettings mode this will do nothing.
113
 
 *
114
 
 * @param self the object to perform the operation on
115
 
 * @param err returns on error if an error happens, should be NULL.
116
 
 *
117
 
 * @returns TRUE if no error occurred, FALSE otherwise
118
 
 *
119
 
 * @warning This operation may be relatively I/O intensive, because the file
120
 
 * is rewritten.
121
 
 */
122
 
gboolean gpump_settings_data_commit (GPumpSettingsData * self,
123
 
                                     GError * err);
124
 
 
125
 
#endif /* #ifndef __H_GPUMP_SETTINGS_DATA__*/