GnuCash  5.6-150-g038405b370+
gnc-prefs.h
Go to the documentation of this file.
1 /********************************************************************\
2  * gnc-prefs.h -- Api to load and store preferences to a *
3  * configurable backend *
4  * *
5  * Copyright (C) 2013 Geert Janssens <geert@kobaltwit.be> *
6  * *
7  * This program is free software; you can redistribute it and/or *
8  * modify it under the terms of the GNU General Public License as *
9  * published by the Free Software Foundation; either version 2 of *
10  * the License, or (at your option) any later version. *
11  * *
12  * This program is distributed in the hope that it will be useful, *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15  * GNU General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU General Public License*
18  * along with this program; if not, contact: *
19  * *
20  * Free Software Foundation Voice: +1-617-542-5942 *
21  * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
22  * Boston, MA 02110-1301, USA gnu@gnu.org *
23  * *
24  ********************************************************************/
25 
45 #ifndef GNC_PREFS_H
46 #define GNC_PREFS_H
47 
48 #include <glib.h>
49 
50 /* Preference groups used across multiple modules */
51 #define GNC_PREFS_GROUP_GENERAL "general"
52 #define GNC_PREFS_GROUP_GENERAL_REGISTER "general.register"
53 #define GNC_PREFS_GROUP_GENERAL_REPORT "general.report"
54 #define GNC_PREFS_GROUP_WARNINGS "general.warnings"
55 #define GNC_PREFS_GROUP_WARNINGS_TEMP "warnings.temporary"
56 #define GNC_PREFS_GROUP_WARNINGS_PERM "warnings.permanent"
57 #define GNC_PREFS_GROUP_ACCT_SUMMARY "window.pages.account-tree.summary"
58 
59 /* Preference names used across multiple modules */
60 #define GNC_PREF_VERSION "prefs-version"
61 #define GNC_PREF_SAVE_GEOMETRY "save-window-geometry"
62 #define GNC_PREF_LAST_PATH "last-path"
63 #define GNC_PREF_USE_NEW "use-new-window"
64 #define GNC_PREF_ACCOUNTING_LABELS "use-accounting-labels"
65 #define GNC_PREF_ACCOUNT_SEPARATOR "account-separator"
66 #define GNC_PREF_NEGATIVE_IN_RED "negative-in-red"
67 #define GNC_PREF_NUM_SOURCE "num-source"
68 #define GNC_PREF_DATE_FORMAT "date-format"
69 #define GNC_PREF_DATE_COMPL_THISYEAR "date-completion-thisyear"
70 #define GNC_PREF_DATE_COMPL_SLIDING "date-completion-sliding"
71 #define GNC_PREF_DATE_BACKMONTHS "date-backmonths"
72 #define GNC_PREF_SHOW_LEAF_ACCT_NAMES "show-leaf-account-names"
73 #define GNC_PREF_ENTER_MOVES_TO_END "enter-moves-to-end"
74 /* Register preferences */
75 #define GNC_PREF_DRAW_HOR_LINES "draw-horizontal-lines"
76 #define GNC_PREF_DRAW_VERT_LINES "draw-vertical-lines"
77 #define GNC_PREF_ALT_COLOR_BY_TRANS "alternate-color-by-transaction"
78 #define GNC_PREF_USE_THEME_COLORS "use-theme-colors" // Obsolete, to remove in a future major version (> 2.8)
79 #define GNC_PREF_USE_GNUCASH_COLOR_THEME "use-gnucash-color-theme"
80 #define GNC_PREF_TAB_TRANS_MEMORISED "tab-to-transfer-on-memorised"
81 #define GNC_PREF_FUTURE_AFTER_BLANK "future-after-blank-transaction"
82 #define GNC_PREF_JUMP_MULT_SPLITS "jump-multiple-splits"
83 /* Date preferences */
84 #define GNC_PREF_START_CHOICE_ABS "start-choice-absolute"
85 #define GNC_PREF_START_CHOICE_REL "start-choice-relative"
86 #define GNC_PREF_START_DATE "start-date"
87 #define GNC_PREF_START_PERIOD "start-period"
88 #define GNC_PREF_END_CHOICE_ABS "end-choice-absolute"
89 #define GNC_PREF_END_CHOICE_REL "end-choice-relative"
90 #define GNC_PREF_END_DATE "end-date"
91 #define GNC_PREF_END_PERIOD "end-period"
92 /* Currency preferences */
93 #define GNC_PREF_CURRENCY_OTHER "currency-other"
94 #define GNC_PREF_CURRENCY_CHOICE_LOCALE "currency-choice-locale"
95 #define GNC_PREF_CURRENCY_CHOICE_OTHER "currency-choice-other"
96 
97 #ifdef __cplusplus
98 extern "C" {
99 #endif
100 
105 const gchar *gnc_prefs_get_namespace_regexp(void);
106 void gnc_prefs_set_namespace_regexp(const gchar *str);
107 
108 gboolean gnc_prefs_is_debugging_enabled(void);
109 void gnc_prefs_set_debugging(gboolean d);
110 
111 gboolean gnc_prefs_is_extra_enabled(void);
112 void gnc_prefs_set_extra(gboolean enabled);
113 
114 gboolean gnc_prefs_get_file_save_compressed(void);
115 void gnc_prefs_set_file_save_compressed(gboolean compressed);
116 
117 gint gnc_prefs_get_file_retention_policy(void);
118 void gnc_prefs_set_file_retention_policy(gint policy);
119 
120 gint gnc_prefs_get_file_retention_days(void);
121 void gnc_prefs_set_file_retention_days(gint days);
122 
123 guint gnc_prefs_get_long_version( void );
124 
130 gboolean gnc_prefs_is_set_up (void);
131 
134 void gnc_prefs_block_all (void);
135 
138 void gnc_prefs_unblock_all (void);
139 
164 gulong gnc_prefs_register_cb (const char *group,
165  const gchar *pref_name,
166  gpointer func,
167  gpointer user_data);
168 
169 
187 void gnc_prefs_remove_cb_by_func (const gchar *group,
188  const gchar *pref_name,
189  gpointer func,
190  gpointer user_data);
191 
192 
204 void gnc_prefs_remove_cb_by_id (const gchar *group,
205  guint id);
206 
207 
222 guint gnc_prefs_register_group_cb (const gchar *group,
223  gpointer func,
224  gpointer user_data);
225 
226 
247 void gnc_prefs_remove_group_cb_by_func (const gchar *group,
248  gpointer func,
249  gpointer user_data);
250 
251 
267 void gnc_prefs_bind (const gchar *group,
268  /*@ null @*/ const gchar *pref_name,
269  /*@ null @*/ const gchar *pref_value,
270  gpointer object,
271  const gchar *property);
272 
291 gboolean gnc_prefs_get_bool (const gchar *group,
292  /*@ null @*/ const gchar *pref_name);
293 
306 gint gnc_prefs_get_int (const gchar *group,
307  const gchar *pref_name);
308 
321 gint64 gnc_prefs_get_int64 (const gchar *group,
322  const gchar *pref_name);
323 
336 gdouble gnc_prefs_get_float (const gchar *group,
337  const gchar *pref_name);
338 
351 gchar *gnc_prefs_get_string (const gchar *group,
352  const gchar *pref_name);
353 
366 gint gnc_prefs_get_enum (const gchar *group,
367  const gchar *pref_name);
368 
382 void gnc_prefs_get_coords (const gchar *group,
383  const gchar *pref_name,
384  gdouble *x, gdouble *y);
385 
403 GVariant *gnc_prefs_get_value (const gchar *group,
404  const gchar *pref_name);
405 
425 gboolean gnc_prefs_set_bool (const gchar *group,
426  const gchar *pref_name,
427  gboolean value);
428 
441 gboolean gnc_prefs_set_int (const gchar *group,
442  const gchar *pref_name,
443  gint value);
444 
457 gboolean gnc_prefs_set_int64 (const gchar *group,
458  const gchar *pref_name,
459  gint64 value);
460 
473 gboolean gnc_prefs_set_float (const gchar *group,
474  const gchar *pref_name,
475  gdouble value);
476 
477 
492 gboolean gnc_prefs_set_string (const gchar *group,
493  const gchar *pref_name,
494  const gchar *value);
495 
508 gboolean gnc_prefs_set_enum (const gchar *group,
509  const gchar *pref_name,
510  gint value);
511 
527 gboolean gnc_prefs_set_coords (const gchar *group,
528  const gchar *pref_name,
529  gdouble x, gdouble y);
530 
544 gboolean gnc_prefs_set_value (const gchar *group,
545  const gchar *pref_name,
546  GVariant *value);
547 
555 void gnc_prefs_reset (const gchar *group,
556  const gchar *pref_name);
557 
562 void gnc_prefs_reset_group (const gchar *group);
563 
567 void gnc_prefs_set_reg_auto_raise_lists_id (gulong id);
568 
572 void gnc_prefs_set_reg_negative_color_pref_id (gulong id);
573 
576 #ifdef __cplusplus
577 }
578 #endif
579 
580 
581 #endif /* GNC_PREFS_H */
582 
void gnc_prefs_reset_group(const gchar *group)
Reset all preferences in a group to their default values in the preferences backend.
Definition: gnc-prefs.c:369
gboolean gnc_prefs_set_value(const gchar *group, const gchar *pref_name, GVariant *value)
Store an arbitrary combination of values into the preferences backend.
Definition: gnc-prefs.c:351
gchar * gnc_prefs_get_string(const gchar *group, const gchar *pref_name)
Get a string value from the preferences backend.
gulong gnc_prefs_register_cb(const char *group, const gchar *pref_name, gpointer func, gpointer user_data)
Register a callback that gets triggered when the given preference changes.
Definition: gnc-prefs.c:128
gulong gnc_prefs_get_reg_negative_color_pref_id(void)
Get and Set registered preference id for register negative_color_pref.
Definition: gnc-prefs.c:402
gboolean gnc_prefs_set_int(const gchar *group, const gchar *pref_name, gint value)
Store an integer value into the preferences backend.
Definition: gnc-prefs.c:289
void gnc_prefs_reset(const gchar *group, const gchar *pref_name)
Reset a preference to its default value in the preferences backend.
Definition: gnc-prefs.c:362
gboolean gnc_prefs_set_string(const gchar *group, const gchar *pref_name, const gchar *value)
Store a string into the preferences backend.
Definition: gnc-prefs.c:320
gint64 gnc_prefs_get_int64(const gchar *group, const gchar *pref_name)
Get an 64 bit integer value from the preferences backend.
gint gnc_prefs_get_int(const gchar *group, const gchar *pref_name)
Get an integer value from the preferences backend.
void gnc_prefs_remove_cb_by_id(const gchar *group, guint id)
Remove a function that was registered for a callback when a specific preference in the settings group...
Definition: gnc-prefs.c:153
gboolean gnc_prefs_set_bool(const gchar *group, const gchar *pref_name, gboolean value)
Store a boolean value into the preferences backend.
Definition: gnc-prefs.c:278
gboolean gnc_prefs_set_enum(const gchar *group, const gchar *pref_name, gint value)
Store an enum value into the preferences backend.
Definition: gnc-prefs.c:331
gint gnc_prefs_get_enum(const gchar *group, const gchar *pref_name)
Get an enum value from the preferences backend.
gboolean gnc_prefs_set_float(const gchar *group, const gchar *pref_name, gdouble value)
Store a float value into the preferences backend.
Definition: gnc-prefs.c:309
gboolean gnc_prefs_set_coords(const gchar *group, const gchar *pref_name, gdouble x, gdouble y)
Store coordinates into the preferences backend.
Definition: gnc-prefs.c:342
void gnc_prefs_get_coords(const gchar *group, const gchar *pref_name, gdouble *x, gdouble *y)
Get a pair of coordinates from the preferences backend.
void gnc_prefs_bind(const gchar *group, const gchar *pref_name, const gchar *pref_value, gpointer object, const gchar *property)
Bind a setting to a g_object property.
Definition: gnc-prefs.c:181
void gnc_prefs_remove_group_cb_by_func(const gchar *group, gpointer func, gpointer user_data)
Remove a function that was registered for a callback when any preference in the given settings group ...
Definition: gnc-prefs.c:172
GVariant * gnc_prefs_get_value(const gchar *group, const gchar *pref_name)
Get an arbitrary combination of values from the preferences backend.
Definition: gnc-prefs.c:268
guint gnc_prefs_register_group_cb(const gchar *group, gpointer func, gpointer user_data)
Register a callback for when any preference in the settings group is changed.
Definition: gnc-prefs.c:161
gboolean gnc_prefs_get_bool(const gchar *group, const gchar *pref_name)
Get a boolean value from the preferences backend.
gulong gnc_prefs_get_reg_auto_raise_lists_id(void)
Get and Set registered preference id for register auto_raise_lists.
Definition: gnc-prefs.c:392
void gnc_prefs_block_all(void)
Block all preference callbacks.
Definition: gnc-prefs.c:380
void gnc_prefs_unblock_all(void)
Unblock all preferences callbacks.
Definition: gnc-prefs.c:386
gboolean gnc_prefs_is_set_up(void)
Test if preferences backend is set up.
Definition: gnc-prefs.c:375
void gnc_prefs_remove_cb_by_func(const gchar *group, const gchar *pref_name, gpointer func, gpointer user_data)
Remove a function that was registered for a callback when the given preference changed.
Definition: gnc-prefs.c:143
gdouble gnc_prefs_get_float(const gchar *group, const gchar *pref_name)
Get an float value from the preferences backend.
gboolean gnc_prefs_set_int64(const gchar *group, const gchar *pref_name, gint64 value)
Store a 64 bit integer value into the preferences backend.
Definition: gnc-prefs.c:300