1 // gnoMint: a graphical interface for managing a certification authority
2 // Copyright (C) 2006-2009 David Marín Carreño <davefx@gmail.com>
3 //
4 // This file is part of gnoMint.
5 //
6 // gnoMint is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 3 of the License, or
9 // (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
20 #include <string.h>
21 #include <gconf/gconf-client.h>
22
23
24 #include "preferences-gui.h"
25
26 #include <glib/gi18n.h>
27
28
29 static GConfClient * preferences_client;
30
31 PreferencesGuiChangeCallback csr_visible_callback = NULL;
32 PreferencesGuiChangeCallback revoked_visible_callback = NULL;
33
preferences_gui_set_csr_visible_callback(PreferencesGuiChangeCallback callback)34 void preferences_gui_set_csr_visible_callback (PreferencesGuiChangeCallback callback)
35 {
36 csr_visible_callback = callback;
37 }
38
preferences_gui_set_revoked_visible_callback(PreferencesGuiChangeCallback callback)39 void preferences_gui_set_revoked_visible_callback (PreferencesGuiChangeCallback callback)
40 {
41 revoked_visible_callback = callback;
42 }
43
44
preferences_changed_callback(GConfClient * client,guint cnxn_id,GConfEntry * entry,gpointer user_data)45 void preferences_changed_callback(GConfClient* client,
46 guint cnxn_id,
47 GConfEntry *entry,
48 gpointer user_data)
49 {
50
51 gboolean value = gconf_value_get_bool (gconf_entry_get_value(entry));
52 if (! strcmp (gconf_entry_get_key(entry), "/apps/gnomint/crq_visible") && csr_visible_callback)
53 csr_visible_callback (value, TRUE);
54
55 if (! strcmp (gconf_entry_get_key(entry), "/apps/gnomint/revoked_visible") && revoked_visible_callback)
56 revoked_visible_callback (value, TRUE);
57
58 }
59
60
61
preferences_init(int argc,char ** argv)62 void preferences_init (int argc, char ** argv)
63 {
64 gconf_init(argc, argv, NULL);
65
66 preferences_client = gconf_client_get_default();
67
68 gconf_client_add_dir(preferences_client,
69 "/apps/gnomint",
70 GCONF_CLIENT_PRELOAD_NONE,
71 NULL);
72
73 gconf_client_notify_add (preferences_client, "/apps/gnomint/revoked_visible",
74 preferences_changed_callback,
75 NULL, NULL, NULL);
76
77 gconf_client_notify_add (preferences_client, "/apps/gnomint/crq_visible",
78 preferences_changed_callback,
79 NULL, NULL, NULL);
80
81
82 }
83
84
preferences_get_size()85 gchar * preferences_get_size ()
86 {
87 return gconf_client_get_string (preferences_client, "/apps/gnomint/size", NULL);
88 }
89
preferences_set_size(const gchar * new_value)90 void preferences_set_size (const gchar *new_value)
91 {
92 gconf_client_set_string (preferences_client, "/apps/gnomint/size", new_value, NULL);
93 }
94
95
preferences_get_revoked_visible()96 gboolean preferences_get_revoked_visible ()
97 {
98 return gconf_client_get_bool (preferences_client, "/apps/gnomint/revoked_visible", NULL);
99 }
100
preferences_set_revoked_visible(gboolean new_value)101 void preferences_set_revoked_visible (gboolean new_value)
102 {
103 gconf_client_set_bool (preferences_client, "/apps/gnomint/revoked_visible", new_value, NULL);
104 }
105
preferences_get_crq_visible()106 gboolean preferences_get_crq_visible ()
107 {
108 return gconf_client_get_bool (preferences_client, "/apps/gnomint/crq_visible", NULL);
109 }
110
preferences_set_crq_visible(gboolean new_value)111 void preferences_set_crq_visible (gboolean new_value)
112 {
113 gconf_client_set_bool (preferences_client, "/apps/gnomint/crq_visible", new_value, NULL);
114 }
115
preferences_get_gnome_keyring_export()116 gboolean preferences_get_gnome_keyring_export ()
117 {
118 return gconf_client_get_bool (preferences_client, "/apps/gnomint/gnome_keyring_export", NULL);
119 }
120
preferences_set_gnome_keyring_export(gboolean new_value)121 void preferences_set_gnome_keyring_export (gboolean new_value)
122 {
123 gconf_client_set_bool (preferences_client, "/apps/gnomint/gnome_keyring_export", new_value, NULL);
124 }
125
126
preferences_deinit()127 void preferences_deinit ()
128 {
129 g_object_unref (preferences_client);
130 preferences_client = NULL;
131 }
132
133