21
21
#endif /* GPUMP_USE_GSETTINGS */
24
/* * Override the default constructer *****************************************/
24
/* Properties enumeration */
39
static GParamSpec * obj_properties[N_PROPERTIES] = { NULL, };
43
/* * Override the default constructor *****************************************/
25
44
GObject * _constructor (GType type,
26
45
guint n_construct_params,
27
46
GObjectConstructParam * construct_params);
30
/******************************************************************************/
48
/* * internal private functions ***********************************************/
49
void _print_errors (GError ** err_arr);
51
void gpump_settings_data_set_property (GObject * object,
56
void gpump_settings_data_get_property (GObject * object,
61
/* * **************************************************************************/
31
62
GPumpSettingsData * gpump_settings_data_get_default () {
32
63
GPumpSettingsData * self = g_object_new (GPUMP_TYPE_SETTINGS_DATA,
177
179
parent->constructor = _constructor;
181
parent->get_property = gpump_settings_data_get_property;
182
parent->set_property = gpump_settings_data_set_property;
184
obj_properties[PROP_UI_X] = g_param_spec_int ("ui-x",
186
"The x coordinate of the window",
193
obj_properties[PROP_UI_Y] = g_param_spec_int ("ui-y",
195
"The Y coordinate of the window",
202
obj_properties[PROP_UI_H] = g_param_spec_int ("ui-h",
204
"The x coordinate of the window",
211
obj_properties[PROP_UI_W] = g_param_spec_int ("ui-w",
213
"The x coordinate of the window",
220
obj_properties[PROP_MAIN_USE_DARK] = g_param_spec_boolean ("main-use-dark",
222
"Weather or not to use dark theme.",
227
obj_properties[PROP_MAIN_FIRST_RUN] = g_param_spec_boolean ("main-use-dark",
229
"Weather or not this is the first time that the app is run.",
234
g_object_class_install_properties (parent, N_PROPERTIES,
179
237
g_type_class_add_private (klass, sizeof (GPumpSettingsDataPrivate));
183
241
void gpump_settings_data_set (GPumpSettingsData * self,
186
#if GPUMP_USE_GSETTINGS
244
g_object_set_property (G_OBJECT (self),
194
GVariant * gpump_settings_data_get (GPumpSettingsData * self,
250
GValue * gpump_settings_data_get (GPumpSettingsData * self,
196
#if GPUMP_USE_GSETTINGS
252
GValue * data = G_VALUE_INIT;
253
g_object_set_property (G_OBJECT (self),
275
336
return g_object_ref (self);
339
/* * Internal private functions ***********************************************/
340
void _print_errors (GError ** err_arr) {
342
for (int i = 0; err_arr[i] != NULL; i++) {
343
g_print ("GPumpSettingsData:\n An %s error occured:\n\t%s\n\n",
344
g_quark_to_string (err_arr[i]->domain),
345
err_arr[i]->message);
351
/* * **************************************************************************
352
* * Getting and setting properties *******************************************
353
* For more information see:
354
* https://developer.gnome.org/gobject/stable/gobject-properties.html
357
/* * declarations of setting functions */
358
void _set_ui_x (GPumpSettingsData * self,
360
void _set_ui_y (GPumpSettingsData * self,
362
void _set_ui_h (GPumpSettingsData * self,
364
void _set_ui_w (GPumpSettingsData * self,
367
void _set_main_use_dark (GPumpSettingsData * self,
369
void _set_main_first_run (GPumpSettingsData * self,
373
/* * declarations of getting functions */
374
void _get_ui_x (GPumpSettingsData * self,
376
void _get_ui_y (GPumpSettingsData * self,
378
void _get_ui_h (GPumpSettingsData * self,
380
void _get_ui_w (GPumpSettingsData * self,
383
void _get_main_use_dark (GPumpSettingsData * self,
385
void _get_main_first_run (GPumpSettingsData * self,
390
/* * Setting props */
391
void gpump_settings_data_set_property (GObject * object,
393
const GValue * value,
394
GParamSpec * pspec) {
395
g_object_ref (object);
397
GPumpSettingsData * self = GPUMP_SETTINGS_DATA (object);
399
switch (property_id) {
403
_set_ui_x (self, value);
406
_set_ui_x (self, value);
409
_set_ui_x (self, value);
412
_set_ui_x (self, value);
415
/* GPump generic props */
416
case PROP_MAIN_USE_DARK:
417
_set_main_use_dark (self, value);
419
case PROP_MAIN_FIRST_RUN:
420
_set_main_first_run (self, value);
425
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
429
g_object_unref (object);
433
void gpump_settings_data_get_property (GObject * object,
436
GParamSpec * pspec) {
437
g_object_ref (object);
439
GPumpSettingsData * self = GPUMP_SETTINGS_DATA (object);
441
switch (property_id) {
445
_get_ui_x (self, value);
448
_get_ui_x (self, value);
451
_get_ui_x (self, value);
454
_get_ui_x (self, value);
457
/* GPump generic props */
458
case PROP_MAIN_USE_DARK:
459
_get_main_use_dark (self, value);
461
case PROP_MAIN_FIRST_RUN:
462
_get_main_first_run (self, value);
467
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
471
g_object_unref (object);
475
/* * implimentations of setting functions *************************************/
476
void _set_ui_x (GPumpSettingsData * self,
478
#if GPUMP_USE_GSETTINGS
481
g_key_file_set_integer (self->priv->gpump_settings,
484
g_value_get_int (value));
488
void _set_ui_y (GPumpSettingsData * self,
490
#if GPUMP_USE_GSETTINGS
493
g_key_file_set_integer (self->priv->gpump_settings,
496
g_value_get_int (value));
500
void _set_ui_h (GPumpSettingsData * self,
502
#if GPUMP_USE_GSETTINGS
505
g_key_file_set_integer (self->priv->gpump_settings,
508
g_value_get_int (value));
512
void _set_ui_w (GPumpSettingsData * self,
514
#if GPUMP_USE_GSETTINGS
517
g_key_file_set_integer (self->priv->gpump_settings,
520
g_value_get_int (value));
524
void _set_main_use_dark (GPumpSettingsData * self,
526
#if GPUMP_USE_GSETTINGS
529
g_key_file_set_integer (self->priv->gpump_settings,
532
g_value_get_boolean (value));
536
void _set_main_first_run (GPumpSettingsData * self,
538
#if GPUMP_USE_GSETTINGS
541
g_key_file_set_integer (self->priv->gpump_settings,
544
g_value_get_boolean (value));
549
/* * implimentations of getting functions *************************************/
550
void _get_ui_x (GPumpSettingsData * self,
552
#if GPUMP_USE_GSETTINGS
555
GError ** err_arr = NULL;
556
g_value_set_int (value,
557
g_key_file_get_integer (self->priv->gpump_settings,
561
_print_errors (err_arr);
562
g_clear_error (err_arr);
566
void _get_ui_y (GPumpSettingsData * self,
568
#if GPUMP_USE_GSETTINGS
571
GError ** err_arr = NULL;
572
g_value_set_int (value,
573
g_key_file_get_integer (self->priv->gpump_settings,
577
_print_errors (err_arr);
578
g_clear_error (err_arr);
582
void _get_ui_h (GPumpSettingsData * self,
584
#if GPUMP_USE_GSETTINGS
587
GError ** err_arr = NULL;
588
g_value_set_int (value,
589
g_key_file_get_integer (self->priv->gpump_settings,
593
_print_errors (err_arr);
594
g_clear_error (err_arr);
598
void _get_ui_w (GPumpSettingsData * self,
600
#if GPUMP_USE_GSETTINGS
603
GError ** err_arr = NULL;
604
g_value_set_int (value,
605
g_key_file_get_integer (self->priv->gpump_settings,
609
_print_errors (err_arr);
610
g_clear_error (err_arr);
614
void _get_main_use_dark (GPumpSettingsData * self,
616
#if GPUMP_USE_GSETTINGS
619
GError ** err_arr = NULL;
620
g_value_set_int (value,
621
g_key_file_get_integer (self->priv->gpump_settings,
625
_print_errors (err_arr);
626
g_clear_error (err_arr);
630
void _get_main_first_run (GPumpSettingsData * self,
632
#if GPUMP_USE_GSETTINGS
635
GError ** err_arr = NULL;
636
g_value_set_int (value,
637
g_key_file_get_integer (self->priv->gpump_settings,
641
_print_errors (err_arr);
642
g_clear_error (err_arr);