summaryrefslogtreecommitdiff
path: root/src/services/configuration-service.h
blob: c898ae7440e971be4ca5c7a9819e54fc8f00fe20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
#pragma once

#include <glib-object.h>

G_BEGIN_DECLS

#define FOOBAR_TYPE_SCREEN_EDGE                  foobar_screen_edge_get_type( )
#define FOOBAR_TYPE_ORIENTATION                  foobar_orientation_get_type( )
#define FOOBAR_TYPE_STATUS_ITEM                  foobar_status_item_get_type( )
#define FOOBAR_TYPE_PANEL_ITEM_KIND              foobar_panel_item_kind_get_type( )
#define FOOBAR_TYPE_PANEL_ITEM_ACTION            foobar_panel_item_action_get_type( )
#define FOOBAR_TYPE_PANEL_ITEM_POSITION          foobar_panel_item_position_get_type( )
#define FOOBAR_TYPE_CONTROL_CENTER_ROW           foobar_control_center_row_get_type( )
#define FOOBAR_TYPE_CONTROL_CENTER_ALIGNMENT     foobar_control_center_alignment_get_type( )
#define FOOBAR_TYPE_GENERAL_CONFIGURATION        foobar_general_configuration_get_type( )
#define FOOBAR_TYPE_PANEL_ITEM_CONFIGURATION     foobar_panel_item_configuration_get_type( )
#define FOOBAR_TYPE_PANEL_CONFIGURATION          foobar_panel_configuration_get_type( )
#define FOOBAR_TYPE_LAUNCHER_CONFIGURATION       foobar_launcher_configuration_get_type( )
#define FOOBAR_TYPE_CONTROL_CENTER_CONFIGURATION foobar_control_center_configuration_get_type( )
#define FOOBAR_TYPE_NOTIFICATION_CONFIGURATION   foobar_notification_configuration_get_type( )
#define FOOBAR_TYPE_CONFIGURATION                foobar_configuration_get_type( )
#define FOOBAR_TYPE_CONFIGURATION_SERVICE        foobar_configuration_service_get_type( )

typedef enum
{
	FOOBAR_SCREEN_EDGE_LEFT,
	FOOBAR_SCREEN_EDGE_RIGHT,
	FOOBAR_SCREEN_EDGE_TOP,
	FOOBAR_SCREEN_EDGE_BOTTOM,
} FoobarScreenEdge;

GType foobar_screen_edge_get_type( void );

typedef enum
{
	FOOBAR_ORIENTATION_HORIZONTAL,
	FOOBAR_ORIENTATION_VERTICAL,
} FoobarOrientation;

GType foobar_orientation_get_type( void );

typedef enum
{
	FOOBAR_STATUS_ITEM_NETWORK,
	FOOBAR_STATUS_ITEM_BLUETOOTH,
	FOOBAR_STATUS_ITEM_BATTERY,
	FOOBAR_STATUS_ITEM_BRIGHTNESS,
	FOOBAR_STATUS_ITEM_AUDIO,
	FOOBAR_STATUS_ITEM_NOTIFICATIONS,
} FoobarStatusItem;

GType foobar_status_item_get_type( void );

typedef enum
{
	FOOBAR_PANEL_ITEM_KIND_ICON,
	FOOBAR_PANEL_ITEM_KIND_CLOCK,
	FOOBAR_PANEL_ITEM_KIND_WORKSPACES,
	FOOBAR_PANEL_ITEM_KIND_STATUS,
} FoobarPanelItemKind;

GType foobar_panel_item_kind_get_type( void );

typedef enum
{
	FOOBAR_PANEL_ITEM_ACTION_NONE,
	FOOBAR_PANEL_ITEM_ACTION_LAUNCHER,
	FOOBAR_PANEL_ITEM_ACTION_CONTROL_CENTER,
} FoobarPanelItemAction;

GType foobar_panel_item_action_get_type( void );

typedef enum
{
	FOOBAR_PANEL_ITEM_POSITION_START,
	FOOBAR_PANEL_ITEM_POSITION_CENTER,
	FOOBAR_PANEL_ITEM_POSITION_END,
} FoobarPanelItemPosition;

GType foobar_panel_item_position_get_type( void );

typedef enum
{
	FOOBAR_CONTROL_CENTER_ROW_CONNECTIVITY,
	FOOBAR_CONTROL_CENTER_ROW_AUDIO_OUTPUT,
	FOOBAR_CONTROL_CENTER_ROW_AUDIO_INPUT,
	FOOBAR_CONTROL_CENTER_ROW_BRIGHTNESS,
} FoobarControlCenterRow;

GType foobar_control_center_row_get_type( void );

typedef enum
{
	FOOBAR_CONTROL_CENTER_ALIGNMENT_START,
	FOOBAR_CONTROL_CENTER_ALIGNMENT_CENTER,
	FOOBAR_CONTROL_CENTER_ALIGNMENT_END,
	FOOBAR_CONTROL_CENTER_ALIGNMENT_FILL,
} FoobarControlCenterAlignment;

GType foobar_control_center_alignment_get_type( void );

typedef struct _FoobarGeneralConfiguration FoobarGeneralConfiguration;

GType                       foobar_general_configuration_get_type      ( void );
FoobarGeneralConfiguration* foobar_general_configuration_new           ( void );
FoobarGeneralConfiguration* foobar_general_configuration_copy          ( FoobarGeneralConfiguration const* self );
void                        foobar_general_configuration_free          ( FoobarGeneralConfiguration*       self );
gboolean                    foobar_general_configuration_equal         ( FoobarGeneralConfiguration const* a,
                                                                         FoobarGeneralConfiguration const* b );
gchar const*                foobar_general_configuration_get_stylesheet( FoobarGeneralConfiguration const* self );
void                        foobar_general_configuration_set_stylesheet( FoobarGeneralConfiguration*       self,
                                                                         gchar const*                      value );

typedef struct _FoobarPanelItemConfiguration FoobarPanelItemConfiguration;

GType                         foobar_panel_item_configuration_get_type    ( void );
FoobarPanelItemConfiguration* foobar_panel_item_configuration_copy        ( FoobarPanelItemConfiguration const* self );
void                          foobar_panel_item_configuration_free        ( FoobarPanelItemConfiguration*       self );
gboolean                      foobar_panel_item_configuration_equal       ( FoobarPanelItemConfiguration const* a,
                                                                            FoobarPanelItemConfiguration const* b );
FoobarPanelItemKind           foobar_panel_item_configuration_get_kind    ( FoobarPanelItemConfiguration const* self );
gchar const*                  foobar_panel_item_configuration_get_name    ( FoobarPanelItemConfiguration const* self );
FoobarPanelItemPosition       foobar_panel_item_configuration_get_position( FoobarPanelItemConfiguration const* self );
FoobarPanelItemAction         foobar_panel_item_configuration_get_action  ( FoobarPanelItemConfiguration const* self );
void                          foobar_panel_item_configuration_set_name    ( FoobarPanelItemConfiguration*       self,
                                                                            gchar const*                        value );
void                          foobar_panel_item_configuration_set_position( FoobarPanelItemConfiguration*       self,
                                                                            FoobarPanelItemPosition             value );
void                          foobar_panel_item_configuration_set_action  ( FoobarPanelItemConfiguration*       self,
                                                                            FoobarPanelItemAction               value );

FoobarPanelItemConfiguration* foobar_panel_item_icon_configuration_new          ( void );
gchar const*                  foobar_panel_item_icon_configuration_get_icon_name( FoobarPanelItemConfiguration const* self );
void                          foobar_panel_item_icon_configuration_set_icon_name( FoobarPanelItemConfiguration*       self,
                                                                                  gchar const*                        value );

FoobarPanelItemConfiguration* foobar_panel_item_clock_configuration_new       ( void );
gchar const*                  foobar_panel_item_clock_configuration_get_format( FoobarPanelItemConfiguration const* self );
void                          foobar_panel_item_clock_configuration_set_format( FoobarPanelItemConfiguration*       self,
                                                                                gchar const*                        value );

FoobarPanelItemConfiguration* foobar_panel_item_workspaces_configuration_new            ( void );
gint                          foobar_panel_item_workspaces_configuration_get_button_size( FoobarPanelItemConfiguration const* self );
gint                          foobar_panel_item_workspaces_configuration_get_spacing    ( FoobarPanelItemConfiguration const* self );
void                          foobar_panel_item_workspaces_configuration_set_button_size( FoobarPanelItemConfiguration*       self,
                                                                                          gint                                value );
void                          foobar_panel_item_workspaces_configuration_set_spacing    ( FoobarPanelItemConfiguration*       self,
                                                                                          gint                                value );

FoobarPanelItemConfiguration* foobar_panel_item_status_configuration_new                 ( void );
FoobarStatusItem const*       foobar_panel_item_status_configuration_get_items           ( FoobarPanelItemConfiguration const* self,
                                                                                           gsize*                              out_count );
gint                          foobar_panel_item_status_configuration_get_spacing         ( FoobarPanelItemConfiguration const* self );
gboolean                      foobar_panel_item_status_configuration_get_show_labels     ( FoobarPanelItemConfiguration const* self );
gboolean                      foobar_panel_item_status_configuration_get_enable_scrolling( FoobarPanelItemConfiguration const* self );
void                          foobar_panel_item_status_configuration_set_items           ( FoobarPanelItemConfiguration*       self,
                                                                                           FoobarStatusItem const*             value,
                                                                                           gsize                               value_count );
void                          foobar_panel_item_status_configuration_set_spacing         ( FoobarPanelItemConfiguration*       self,
                                                                                           gint                                value );
void                          foobar_panel_item_status_configuration_set_show_labels     ( FoobarPanelItemConfiguration*       self,
                                                                                           gboolean                            value );
void                          foobar_panel_item_status_configuration_set_enable_scrolling( FoobarPanelItemConfiguration*       self,
                                                                                           gboolean                            value );

typedef struct _FoobarPanelConfiguration FoobarPanelConfiguration;

GType                                      foobar_panel_configuration_get_type         ( void );
FoobarPanelConfiguration*                  foobar_panel_configuration_new              ( void );
FoobarPanelConfiguration*                  foobar_panel_configuration_copy             ( FoobarPanelConfiguration const*            self );
void                                       foobar_panel_configuration_free             ( FoobarPanelConfiguration*                  self );
gboolean                                   foobar_panel_configuration_equal            ( FoobarPanelConfiguration const*            a,
                                                                                         FoobarPanelConfiguration const*            b );
FoobarScreenEdge                           foobar_panel_configuration_get_position     ( FoobarPanelConfiguration const*            self );
gint                                       foobar_panel_configuration_get_margin       ( FoobarPanelConfiguration const*            self );
gint                                       foobar_panel_configuration_get_padding      ( FoobarPanelConfiguration const*            self );
gint                                       foobar_panel_configuration_get_size         ( FoobarPanelConfiguration const*            self );
gint                                       foobar_panel_configuration_get_spacing      ( FoobarPanelConfiguration const*            self );
gboolean                                   foobar_panel_configuration_get_multi_monitor( FoobarPanelConfiguration const*            self );
FoobarPanelItemConfiguration const* const* foobar_panel_configuration_get_items        ( FoobarPanelConfiguration const*            self,
                                                                                         gsize*                                     out_count );
FoobarPanelItemConfiguration* const*       foobar_panel_configuration_get_items_mut    ( FoobarPanelConfiguration*                  self,
                                                                                         gsize*                                     out_count );
void                                       foobar_panel_configuration_set_position     ( FoobarPanelConfiguration*                  self,
                                                                                         FoobarScreenEdge                           value );
void                                       foobar_panel_configuration_set_margin       ( FoobarPanelConfiguration*                  self,
                                                                                         gint                                       value );
void                                       foobar_panel_configuration_set_padding      ( FoobarPanelConfiguration*                  self,
                                                                                         gint                                       value );
void                                       foobar_panel_configuration_set_size         ( FoobarPanelConfiguration*                  self,
                                                                                         gint                                       value );
void                                       foobar_panel_configuration_set_spacing      ( FoobarPanelConfiguration*                  self,
                                                                                         gint                                       value );
void                                       foobar_panel_configuration_set_multi_monitor( FoobarPanelConfiguration*                  self,
                                                                                         gboolean                                   value );
void                                       foobar_panel_configuration_set_items        ( FoobarPanelConfiguration*                  self,
                                                                                         FoobarPanelItemConfiguration const* const* value,
                                                                                         gsize                                      value_count );

typedef struct _FoobarLauncherConfiguration FoobarLauncherConfiguration;

GType                        foobar_launcher_configuration_get_type      ( void );
FoobarLauncherConfiguration* foobar_launcher_configuration_new           ( void );
FoobarLauncherConfiguration* foobar_launcher_configuration_copy          ( FoobarLauncherConfiguration const* self );
void                         foobar_launcher_configuration_free          ( FoobarLauncherConfiguration*       self );
gboolean                     foobar_launcher_configuration_equal         ( FoobarLauncherConfiguration const* a,
                                                                           FoobarLauncherConfiguration const* b );
gint                         foobar_launcher_configuration_get_width     ( FoobarLauncherConfiguration const* self );
gint                         foobar_launcher_configuration_get_position  ( FoobarLauncherConfiguration const* self );
gint                         foobar_launcher_configuration_get_max_height( FoobarLauncherConfiguration const* self );
void                         foobar_launcher_configuration_set_width     ( FoobarLauncherConfiguration*       self,
                                                                           gint                               value );
void                         foobar_launcher_configuration_set_position  ( FoobarLauncherConfiguration*       self,
                                                                           gint                               value );
void                         foobar_launcher_configuration_set_max_height( FoobarLauncherConfiguration*       self,
                                                                           gint                               value );

typedef struct _FoobarControlCenterConfiguration FoobarControlCenterConfiguration;

GType                             foobar_control_center_configuration_get_type       ( void );
FoobarControlCenterConfiguration* foobar_control_center_configuration_new            ( void );
FoobarControlCenterConfiguration* foobar_control_center_configuration_copy           ( FoobarControlCenterConfiguration const* self );
void                              foobar_control_center_configuration_free           ( FoobarControlCenterConfiguration*       self );
gboolean                          foobar_control_center_configuration_equal          ( FoobarControlCenterConfiguration const* a,
                                                                                       FoobarControlCenterConfiguration const* b );
gint                              foobar_control_center_configuration_get_width      ( FoobarControlCenterConfiguration const* self );
gint                              foobar_control_center_configuration_get_height     ( FoobarControlCenterConfiguration const* self );
FoobarScreenEdge                  foobar_control_center_configuration_get_position   ( FoobarControlCenterConfiguration const* self );
gint                              foobar_control_center_configuration_get_offset     ( FoobarControlCenterConfiguration const* self );
gint                              foobar_control_center_configuration_get_padding    ( FoobarControlCenterConfiguration const* self );
gint                              foobar_control_center_configuration_get_spacing    ( FoobarControlCenterConfiguration const* self );
FoobarOrientation                 foobar_control_center_configuration_get_orientation( FoobarControlCenterConfiguration const* self );
FoobarControlCenterAlignment      foobar_control_center_configuration_get_alignment  ( FoobarControlCenterConfiguration const* self );
FoobarControlCenterRow const*     foobar_control_center_configuration_get_rows       ( FoobarControlCenterConfiguration const* self,
                                                                                       gsize*                                  out_count );
void                              foobar_control_center_configuration_set_width      ( FoobarControlCenterConfiguration*       self,
                                                                                       gint                                    value );
void                              foobar_control_center_configuration_set_height     ( FoobarControlCenterConfiguration*       self,
                                                                                       gint                                    value );
void                              foobar_control_center_configuration_set_position   ( FoobarControlCenterConfiguration*       self,
                                                                                       FoobarScreenEdge                        value );
void                              foobar_control_center_configuration_set_offset     ( FoobarControlCenterConfiguration*       self,
                                                                                       gint                                    value );
void                              foobar_control_center_configuration_set_padding    ( FoobarControlCenterConfiguration*       self,
                                                                                       gint                                    value );
void                              foobar_control_center_configuration_set_spacing    ( FoobarControlCenterConfiguration*       self,
                                                                                       gint                                    value );
void                              foobar_control_center_configuration_set_orientation( FoobarControlCenterConfiguration*       self,
                                                                                       FoobarOrientation                       value );
void                              foobar_control_center_configuration_set_rows       ( FoobarControlCenterConfiguration*       self,
                                                                                       FoobarControlCenterRow const*           value,
                                                                                       gsize                                   value_count );
void                              foobar_control_center_configuration_set_alignment  ( FoobarControlCenterConfiguration*       self,
                                                                                       FoobarControlCenterAlignment            value );

typedef struct _FoobarNotificationConfiguration FoobarNotificationConfiguration;

GType                            foobar_notification_configuration_get_type              ( void );
FoobarNotificationConfiguration* foobar_notification_configuration_new                   ( void );
FoobarNotificationConfiguration* foobar_notification_configuration_copy                  ( FoobarNotificationConfiguration const* self );
void                             foobar_notification_configuration_free                  ( FoobarNotificationConfiguration*       self );
gboolean                         foobar_notification_configuration_equal                 ( FoobarNotificationConfiguration const* a,
                                                                                           FoobarNotificationConfiguration const* b );
gint                             foobar_notification_configuration_get_width             ( FoobarNotificationConfiguration const* self );
gint                             foobar_notification_configuration_get_min_height        ( FoobarNotificationConfiguration const* self );
gint                             foobar_notification_configuration_get_spacing           ( FoobarNotificationConfiguration const* self );
gint                             foobar_notification_configuration_get_close_button_inset( FoobarNotificationConfiguration const* self );
gchar const*                     foobar_notification_configuration_get_time_format       ( FoobarNotificationConfiguration const* self );
void                             foobar_notification_configuration_set_width             ( FoobarNotificationConfiguration*       self,
                                                                                           gint                                   value );
void                             foobar_notification_configuration_set_min_height        ( FoobarNotificationConfiguration*       self,
                                                                                           gint                                   value );
void                             foobar_notification_configuration_set_spacing           ( FoobarNotificationConfiguration*       self,
                                                                                           gint                                   value );
void                             foobar_notification_configuration_set_close_button_inset( FoobarNotificationConfiguration*       self,
                                                                                           gint                                   value );
void                             foobar_notification_configuration_set_time_format       ( FoobarNotificationConfiguration*       self,
                                                                                           gchar const*                           value );

typedef struct _FoobarConfiguration FoobarConfiguration;

GType                                   foobar_configuration_get_type              ( void );
FoobarConfiguration*                    foobar_configuration_new                   ( void );
FoobarConfiguration*                    foobar_configuration_copy                  ( FoobarConfiguration const* self );
void                                    foobar_configuration_free                  ( FoobarConfiguration*       self );
gboolean                                foobar_configuration_equal                 ( FoobarConfiguration const* a,
                                                                                     FoobarConfiguration const* b );
FoobarGeneralConfiguration const*       foobar_configuration_get_general           ( FoobarConfiguration const* self );
FoobarGeneralConfiguration*             foobar_configuration_get_general_mut       ( FoobarConfiguration*       self );
FoobarPanelConfiguration const*         foobar_configuration_get_panel             ( FoobarConfiguration const* self );
FoobarPanelConfiguration*               foobar_configuration_get_panel_mut         ( FoobarConfiguration*       self );
FoobarLauncherConfiguration const*      foobar_configuration_get_launcher          ( FoobarConfiguration const* self );
FoobarLauncherConfiguration*            foobar_configuration_get_launcher_mut      ( FoobarConfiguration*       self );
FoobarControlCenterConfiguration const* foobar_configuration_get_control_center    ( FoobarConfiguration const* self );
FoobarControlCenterConfiguration*       foobar_configuration_get_control_center_mut( FoobarConfiguration*       self );
FoobarNotificationConfiguration const*  foobar_configuration_get_notifications     ( FoobarConfiguration const* self );
FoobarNotificationConfiguration*        foobar_configuration_get_notifications_mut ( FoobarConfiguration*       self );


G_DECLARE_FINAL_TYPE( FoobarConfigurationService, foobar_configuration_service, FOOBAR, CONFIGURATION_SERVICE, GObject )

FoobarConfigurationService* foobar_configuration_service_new        ( void );
FoobarConfiguration const*  foobar_configuration_service_get_current( FoobarConfigurationService* self );

G_END_DECLS