1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
3 * Gui Policy Editor for TOMOYO Linux
6 * Copyright (C) Yoshihiro Kusuno 2010 <yocto@users.sourceforge.jp>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Library General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
27 #include <gconf/gconf-client.h>
29 #include <glib/gi18n.h>
33 #define PRINT_WARN(err) {g_warning("%s", err->message);g_error_free(err);err = NULL;}
35 #define DIRECTORY "/apps/gpet"
36 #define WINDOW_POSITION DIRECTORY"/window_position"
37 #define WINDOW_SIZE DIRECTORY"/window_size"
38 #define ACL_WINDOW_SIZE DIRECTORY"/acl_window_size"
39 #define PANED_POSITION DIRECTORY"/paned_position"
41 void read_config(transition_t *tran)
49 gtk_widget_set_size_request(tran->window, 640, 480);
50 gtk_widget_set_size_request(tran->acl_window, 600, 400);
52 client = gconf_client_get_default();
53 if (!gconf_client_dir_exists(client, DIRECTORY, &err)) {
57 if (gconf_client_get_pair(client, WINDOW_POSITION,
58 GCONF_VALUE_INT, GCONF_VALUE_INT, &x, &y, &err))
59 gtk_window_move(GTK_WINDOW(tran->window), x, y);
63 if (gconf_client_get_pair(client, WINDOW_SIZE,
64 GCONF_VALUE_INT, GCONF_VALUE_INT, &w, &h, &err))
65 gtk_window_set_default_size(GTK_WINDOW(tran->window), w, h);
69 if (gconf_client_get_pair(client, ACL_WINDOW_SIZE,
70 GCONF_VALUE_INT, GCONF_VALUE_INT, &w, &h, &err))
71 gtk_window_set_default_size(GTK_WINDOW(tran->acl_window), w, h);
75 /* get gpet.c main()*/
76 paned = g_object_get_data(G_OBJECT(tran->window), "pane");
78 paned_position = gconf_client_get_int(
79 client, PANED_POSITION, &err);
81 gtk_paned_set_position(paned, paned_position);
87 void write_config(transition_t *tran)
95 client = gconf_client_get_default();
96 if (!gconf_client_dir_exists(client, DIRECTORY, &err)) {
97 gconf_client_add_dir(client, DIRECTORY,
98 GCONF_CLIENT_PRELOAD_NONE, &err);
105 gtk_window_get_position(GTK_WINDOW(tran->window), &x, &y);
106 if (!gconf_client_set_pair(client, WINDOW_POSITION,
107 GCONF_VALUE_INT, GCONF_VALUE_INT, &x, &y, &err)) {
111 gtk_window_get_size(GTK_WINDOW(tran->window), &w, &h);
112 if (!gconf_client_set_pair(client, WINDOW_SIZE,
113 GCONF_VALUE_INT, GCONF_VALUE_INT, &w, &h, &err)) {
117 gtk_window_get_size(GTK_WINDOW(tran->acl_window), &w, &h);
118 if (!gconf_client_set_pair(client, ACL_WINDOW_SIZE,
119 GCONF_VALUE_INT, GCONF_VALUE_INT, &w, &h, &err)) {
123 paned = g_object_get_data(G_OBJECT(tran->window), "pane");
124 if (!tran->acl_detached && paned) {
125 paned_position = gtk_paned_get_position(paned);
126 if (!gconf_client_set_int(client, PANED_POSITION,
127 paned_position, &err)) {