Gnome 2 port. (Settings only halfway work right now.)

2002-01-14  Richard Hestilow  <hestilow@ximian.com>

	* Gnome 2 port. (Settings only halfway work right now.)
This commit is contained in:
Richard Hestilow 2002-01-14 18:25:44 +00:00 committed by Rachel Hestilow
parent 56d19870d2
commit 26c2c85107
12 changed files with 2342 additions and 2478 deletions

View file

@ -1,3 +1,7 @@
2002-01-14 Richard Hestilow <hestilow@ximian.com>
* Gnome 2 port. (Settings only halfway work right now.)
2001-09-29 Richard Hestilow <hestilow@ximian.com> 2001-09-29 Richard Hestilow <hestilow@ximian.com>
* prefs-widget.c (prefs_widget_set_arg): Register * prefs-widget.c (prefs_widget_set_arg): Register

File diff suppressed because it is too large Load diff

View file

@ -28,19 +28,10 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gnome.h> #include <gnome.h>
#include <libgnomeui/gnome-window-icon.h> #include <libgnomeui/gnome-window-icon.h>
#include <tree.h>
#include <parser.h>
#include <fcntl.h> #include <fcntl.h>
#include <glade/glade.h> #include <glade/glade.h>
#include <capplet-widget.h>
#ifdef HAVE_XIMIAN_ARCHIVER
# include <ximian-archiver/archive.h>
# include <ximian-archiver/location.h>
#endif /* HAVE_XIMIAN_ARCHIVER */
#include "preferences.h" #include "preferences.h"
#include "prefs-widget.h" #include "prefs-widget.h"
#include "prefs-widget-app.h" #include "prefs-widget-app.h"
@ -48,68 +39,21 @@
#include "prefs-widget-mdi.h" #include "prefs-widget-mdi.h"
static Preferences *prefs; static Preferences *prefs;
static Preferences *old_prefs;
static PrefsWidget *prefs_widget; static PrefsWidget *prefs_widget;
#ifdef HAVE_XIMIAN_ARCHIVER static gint cap_session_init = 0;
static struct poptOption cap_options[] = {
static Archive *archive; {"init-session-settings", '\0', POPT_ARG_NONE, &cap_session_init, 0,
static gboolean outside_location; N_("Initialize session settings"), NULL},
{NULL, '\0', 0, NULL, 0}
static void };
store_archive_data (void)
{
Location *location;
xmlDocPtr xml_doc;
if (capplet_get_location () == NULL)
location = archive_get_current_location (archive);
else
location = archive_get_location (archive,
capplet_get_location ());
xml_doc = preferences_write_xml (prefs);
location_store_xml (location, "ui-properties-capplet",
xml_doc, STORE_MASK_PREVIOUS);
xmlFreeDoc (xml_doc);
archive_close (archive);
}
#endif /* HAVE_XIMIAN_ARCHIVER */
static void
ok_cb (GtkWidget *widget)
{
#ifdef HAVE_XIMIAN_ARCHIVER
if (!outside_location)
#endif /* HAVE_XIMIAN_ARCHIVER */
preferences_save (prefs);
#ifdef HAVE_XIMIAN_ARCHIVER
store_archive_data ();
#endif /* HAVE_XIMIAN_ARCHIVER */
}
static void
cancel_cb (GtkWidget *widget)
{
#ifdef HAVE_XIMIAN_ARCHIVER
if (!outside_location)
#endif /* HAVE_XIMIAN_ARCHIVER */
preferences_save (old_prefs);
}
static void static void
setup_capplet_widget (void) setup_capplet_widget (void)
{ {
preferences_freeze (prefs); preferences_freeze (prefs);
prefs_widget = prefs_widget_new (prefs); prefs_widget = PREFS_WIDGET (prefs_widget_new (prefs));
gtk_signal_connect (GTK_OBJECT (prefs_widget), "ok",
GTK_SIGNAL_FUNC (ok_cb), NULL);
gtk_signal_connect (GTK_OBJECT (prefs_widget), "cancel",
GTK_SIGNAL_FUNC (cancel_cb), NULL);
gtk_widget_show (GTK_WIDGET (prefs_widget)); gtk_widget_show (GTK_WIDGET (prefs_widget));
@ -187,64 +131,16 @@ do_restore_from_defaults (void)
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
GnomeClient *client;
GnomeClientFlags flags;
gint token, res;
gchar *restart_args[3]; gchar *restart_args[3];
bindtextdomain (PACKAGE, GNOMELOCALEDIR); bindtextdomain (PACKAGE, GNOMELOCALEDIR);
bind_textdomain_codeset (PACKAGE, "UTF-8"); bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain (PACKAGE); textdomain (PACKAGE);
glade_gnome_init (); gnome_program_init ("ui-properties-capplet", VERSION,
res = gnome_capplet_init ("behavior", LIBGNOMEUI_MODULE, argc, argv,
VERSION, argc, argv, NULL, GNOME_PARAM_POPT_TABLE, &cap_options,
0, NULL); NULL);
if (res < 0) {
g_error ("Could not initialize the capplet.");
}
else if (res == 3) {
#ifdef HAVE_XIMIAN_ARCHIVER
do_get_xml ();
#endif /* HAVE_XIMIAN_ARCHIVER */
return 0;
}
else if (res == 4) {
#ifdef HAVE_XIMIAN_ARCHIVER
do_set_xml (TRUE);
#endif /* HAVE_XIMIAN_ARCHIVER */
return 0;
}
else if (res == 5) {
do_restore_from_defaults ();
return 0;
}
client = gnome_master_client ();
flags = gnome_client_get_flags (client);
if (flags & GNOME_CLIENT_IS_CONNECTED) {
token = gnome_startup_acquire_token
("GNOME_UI_PROPERTIES",
gnome_client_get_id (client));
if (token) {
gnome_client_set_priority (client, 20);
gnome_client_set_restart_style (client,
GNOME_RESTART_ANYWAY);
restart_args[0] = argv[0];
restart_args[1] = "--init-session-settings";
restart_args[2] = NULL;
gnome_client_set_restart_command (client, 2,
restart_args);
} else {
gnome_client_set_restart_style (client,
GNOME_RESTART_NEVER);
}
} else {
token = 1;
}
gnome_window_icon_set_default_from_file (GNOMECC_ICONS_DIR"/gnome-applications.png"); gnome_window_icon_set_default_from_file (GNOMECC_ICONS_DIR"/gnome-applications.png");
@ -273,15 +169,13 @@ main (int argc, char **argv)
prefs = PREFERENCES (preferences_new ()); prefs = PREFERENCES (preferences_new ());
preferences_load (prefs); preferences_load (prefs);
if (token) preferences_apply_now (prefs);
#endif /* HAVE_XIMIAN_ARCHIVER */ #endif /* HAVE_XIMIAN_ARCHIVER */
if (!res) { if (!cap_session_init) {
old_prefs = PREFERENCES (preferences_clone (prefs));
setup_capplet_widget (); setup_capplet_widget ();
capplet_gtk_main (); gtk_main ();
} }
return 0; return 0;

View file

@ -28,6 +28,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <gnome.h> #include <gnome.h>
#include <gconf/gconf-client.h>
#include "preferences.h" #include "preferences.h"
@ -36,15 +37,10 @@ static GtkObjectClass *parent_class;
static void preferences_init (Preferences *prefs); static void preferences_init (Preferences *prefs);
static void preferences_class_init (PreferencesClass *class); static void preferences_class_init (PreferencesClass *class);
static gint xml_read_int (xmlNodePtr node);
static xmlNodePtr xml_write_int (gchar *name,
gint number);
static gboolean xml_read_bool (xmlNodePtr node);
static xmlNodePtr xml_write_bool (gchar *name,
gboolean value);
static gint apply_timeout_cb (Preferences *prefs); static gint apply_timeout_cb (Preferences *prefs);
#define DGI "/desktop/gnome/interface/"
guint guint
preferences_get_type (void) preferences_get_type (void)
{ {
@ -57,8 +53,8 @@ preferences_get_type (void)
sizeof (PreferencesClass), sizeof (PreferencesClass),
(GtkClassInitFunc) preferences_class_init, (GtkClassInitFunc) preferences_class_init,
(GtkObjectInitFunc) preferences_init, (GtkObjectInitFunc) preferences_init,
(GtkArgSetFunc) NULL, NULL,
(GtkArgGetFunc) NULL NULL
}; };
preferences_type = preferences_type =
@ -73,7 +69,6 @@ static void
preferences_init (Preferences *prefs) preferences_init (Preferences *prefs)
{ {
prefs->frozen = FALSE; prefs->frozen = FALSE;
prefs->gnome_prefs = g_new0 (GnomePreferences, 1);
/* FIXME: Code to set default values */ /* FIXME: Code to set default values */
} }
@ -108,14 +103,11 @@ preferences_clone (Preferences *prefs)
g_return_val_if_fail (prefs != NULL, NULL); g_return_val_if_fail (prefs != NULL, NULL);
g_return_val_if_fail (IS_PREFERENCES (prefs), NULL); g_return_val_if_fail (IS_PREFERENCES (prefs), NULL);
g_return_val_if_fail (prefs->gnome_prefs != NULL, NULL);
object = preferences_new (); object = preferences_new ();
new_prefs = PREFERENCES (object); new_prefs = PREFERENCES (object);
memcpy (new_prefs->gnome_prefs, prefs->gnome_prefs, new_prefs->gnome_prefs = prefs->gnome_prefs;
sizeof (GnomePreferences));
new_prefs->dialog_use_icons = prefs->dialog_use_icons;
return object; return object;
} }
@ -130,36 +122,52 @@ preferences_destroy (GtkObject *object)
prefs = PREFERENCES (object); prefs = PREFERENCES (object);
if (prefs->gnome_prefs) g_free (prefs->gnome_prefs);
parent_class->destroy (object); parent_class->destroy (object);
} }
void void
preferences_load (Preferences *prefs) preferences_load (Preferences *prefs)
{ {
GConfClient *client;
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
gnome_preferences_load_custom (prefs->gnome_prefs); client = gconf_client_get_default ();
prefs->gnome_prefs.menus_have_tearoff = gconf_client_get_bool (client, DGI "menus-have-tearoff", NULL);
prefs->dialog_use_icons = prefs->gnome_prefs.statusbar_is_interactive = gconf_client_get_bool (client, DGI "statusbar-interactive", NULL);
gnome_config_get_bool ("/Gnome/Icons/ButtonUseIcons=true"); prefs->gnome_prefs.menubar_relief = gconf_client_get_bool (client, DGI "menubar-relief", NULL);
prefs->gnome_prefs.toolbar_labels = gconf_client_get_bool (client, DGI "toolbar-labels", NULL);
prefs->gnome_prefs.menus_show_icons = gconf_client_get_bool (client, DGI "menus-have-icons", NULL);
prefs->gnome_prefs.menubar_detachable = gconf_client_get_bool (client, DGI "menubar-detachable", NULL);
prefs->gnome_prefs.toolbar_relief = gconf_client_get_bool (client, DGI "toolbar-relief", NULL);
prefs->gnome_prefs.statusbar_meter_on_right = gconf_client_get_bool (client, DGI "statusbar-meter-on-right", NULL);
prefs->gnome_prefs.toolbar_detachable = gconf_client_get_bool (client, DGI "toolbar-detachable", NULL);
g_object_unref (G_OBJECT (client));
} }
void void
preferences_save (Preferences *prefs) preferences_save (Preferences *prefs)
{ {
GConfClient *client;
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
gnome_preferences_save_custom (prefs->gnome_prefs); client = gconf_client_get_default ();
gconf_client_set_bool (client, DGI "menus-have-tearoff", prefs->gnome_prefs.menus_have_tearoff, NULL);
gnome_config_set_bool ("/Gnome/Icons/ButtonUseIcons", gconf_client_set_bool (client, DGI "statusbar-interactive", prefs->gnome_prefs.statusbar_is_interactive, NULL);
prefs->dialog_use_icons); gconf_client_set_bool (client, DGI "menubar-relief", prefs->gnome_prefs.menubar_relief, NULL);
gnome_config_sync (); gconf_client_set_bool (client, DGI "toolbar-labels", prefs->gnome_prefs.toolbar_labels, NULL);
gconf_client_set_bool (client, DGI "menus-have-icons", prefs->gnome_prefs.menus_show_icons, NULL);
gconf_client_set_bool (client, DGI "menubar-detachable", prefs->gnome_prefs.menubar_detachable, NULL);
gconf_client_set_bool (client, DGI "toolbar-relief", prefs->gnome_prefs.toolbar_relief, NULL);
gconf_client_set_bool (client, DGI "statusbar-meter-on-right", prefs->gnome_prefs.statusbar_meter_on_right, NULL);
gconf_client_set_bool (client, DGI "toolbar-detachable", prefs->gnome_prefs.toolbar_detachable, NULL);
g_object_unref (G_OBJECT (client));
} }
void void
@ -203,251 +211,6 @@ preferences_thaw (Preferences *prefs)
if (prefs->frozen > 0) prefs->frozen--; if (prefs->frozen > 0) prefs->frozen--;
} }
Preferences *
preferences_read_xml (xmlDocPtr xml_doc)
{
Preferences *prefs;
xmlNodePtr root_node, node;
prefs = PREFERENCES (preferences_new ());
root_node = xmlDocGetRootElement (xml_doc);
if (strcmp (root_node->name, "ui-properties"))
return NULL;
for (node = root_node->childs; node; node = node->next) {
if (!strcmp (node->name, "dialog-buttons-style"))
prefs->gnome_prefs->dialog_buttons_style =
xml_read_int (node);
else if (!strcmp (node->name, "property-box-buttons-ok"))
prefs->gnome_prefs->property_box_buttons_ok =
xml_read_bool (node);
else if (!strcmp (node->name, "property-box-buttons-apply"))
prefs->gnome_prefs->property_box_buttons_apply =
xml_read_bool (node);
else if (!strcmp (node->name, "property-box-buttons-close"))
prefs->gnome_prefs->property_box_buttons_close =
xml_read_bool (node);
else if (!strcmp (node->name, "property-box-buttons-help"))
prefs->gnome_prefs->property_box_buttons_help =
xml_read_bool (node);
else if (!strcmp (node->name, "statusbar-not-dialog"))
prefs->gnome_prefs->statusbar_not_dialog =
xml_read_bool (node);
else if (!strcmp (node->name, "statusbar-is-interactive"))
prefs->gnome_prefs->statusbar_is_interactive =
xml_read_bool (node);
else if (!strcmp (node->name, "statusbar-meter-on-right"))
prefs->gnome_prefs->statusbar_meter_on_right =
xml_read_bool (node);
else if (!strcmp (node->name, "menubar-detachable"))
prefs->gnome_prefs->menubar_detachable =
xml_read_bool (node);
else if (!strcmp (node->name, "menubar-relief"))
prefs->gnome_prefs->menubar_relief =
xml_read_bool (node);
else if (!strcmp (node->name, "toolbar-detachable"))
prefs->gnome_prefs->toolbar_detachable =
xml_read_bool (node);
else if (!strcmp (node->name, "toolbar-relief"))
prefs->gnome_prefs->toolbar_relief =
xml_read_bool (node);
else if (!strcmp (node->name, "toolbar-relief-btn"))
prefs->gnome_prefs->toolbar_relief_btn =
xml_read_bool (node);
else if (!strcmp (node->name, "toolbar-lines"))
prefs->gnome_prefs->toolbar_lines =
xml_read_bool (node);
else if (!strcmp (node->name, "toolbar-labels"))
prefs->gnome_prefs->toolbar_labels =
xml_read_bool (node);
else if (!strcmp (node->name, "dialog-centered"))
prefs->gnome_prefs->dialog_centered =
xml_read_bool (node);
else if (!strcmp (node->name, "menus-have-tearoff"))
prefs->gnome_prefs->menus_have_tearoff =
xml_read_bool (node);
else if (!strcmp (node->name, "menus-have-icons"))
prefs->gnome_prefs->menus_have_icons =
xml_read_bool (node);
else if (!strcmp (node->name, "disable-imlib-cache"))
prefs->gnome_prefs->disable_imlib_cache =
xml_read_bool (node);
else if (!strcmp (node->name, "dialog-type"))
prefs->gnome_prefs->dialog_type = xml_read_int (node);
else if (!strcmp (node->name, "dialog-position"))
prefs->gnome_prefs->dialog_position =
xml_read_int (node);
else if (!strcmp (node->name, "mdi-mode"))
prefs->gnome_prefs->mdi_mode = xml_read_int (node);
else if (!strcmp (node->name, "mdi-tab-pos"))
prefs->gnome_prefs->mdi_tab_pos = xml_read_int (node);
else if (!strcmp (node->name, "dialog-use-icons"))
prefs->dialog_use_icons = xml_read_bool (node);
}
return prefs;
}
xmlDocPtr
preferences_write_xml (Preferences *prefs)
{
xmlDocPtr doc;
xmlNodePtr node;
doc = xmlNewDoc ("1.0");
node = xmlNewDocNode (doc, NULL, "ui-properties", NULL);
xmlAddChild (node,
xml_write_int ("dialog-buttons-style",
prefs->gnome_prefs->dialog_buttons_style));
xmlAddChild (node,
xml_write_bool ("property-box-buttons-ok",
prefs->gnome_prefs->property_box_buttons_ok));
xmlAddChild (node,
xml_write_bool ("property-box-buttons-apply",
prefs->gnome_prefs->property_box_buttons_apply));
xmlAddChild (node,
xml_write_bool ("property-box-buttons-close",
prefs->gnome_prefs->property_box_buttons_close));
xmlAddChild (node,
xml_write_bool ("property-box-buttons-help",
prefs->gnome_prefs->property_box_buttons_help));
xmlAddChild (node,
xml_write_bool ("statusbar-not-dialog",
prefs->gnome_prefs->statusbar_not_dialog));
xmlAddChild (node,
xml_write_bool ("statusbar-is-interactive",
prefs->gnome_prefs->statusbar_is_interactive));
xmlAddChild (node,
xml_write_bool ("statusbar-meter-on-right",
prefs->gnome_prefs->statusbar_meter_on_right));
xmlAddChild (node,
xml_write_bool ("menubar-detachable",
prefs->gnome_prefs->menubar_detachable));
xmlAddChild (node,
xml_write_bool ("menubar-relief",
prefs->gnome_prefs->menubar_relief));
xmlAddChild (node,
xml_write_bool ("toolbar-detachable",
prefs->gnome_prefs->toolbar_detachable));
xmlAddChild (node,
xml_write_bool ("toolbar-relief",
prefs->gnome_prefs->toolbar_relief));
xmlAddChild (node,
xml_write_bool ("toolbar-relief-btn",
prefs->gnome_prefs->toolbar_relief_btn));
xmlAddChild (node,
xml_write_bool ("toolbar-lines",
prefs->gnome_prefs->toolbar_lines));
xmlAddChild (node,
xml_write_bool ("toolbar-labels",
prefs->gnome_prefs->toolbar_labels));
xmlAddChild (node,
xml_write_bool ("dialog-centered",
prefs->gnome_prefs->dialog_centered));
xmlAddChild (node,
xml_write_bool ("menus-have-tearoff",
prefs->gnome_prefs->menus_have_tearoff));
xmlAddChild (node,
xml_write_bool ("menus-have-icons",
prefs->gnome_prefs->menus_have_icons));
xmlAddChild (node,
xml_write_bool ("disable-imlib-cache",
prefs->gnome_prefs->disable_imlib_cache));
xmlAddChild (node,
xml_write_int ("dialog-type",
prefs->gnome_prefs->dialog_type));
xmlAddChild (node,
xml_write_int ("dialog-position",
prefs->gnome_prefs->dialog_position));
xmlAddChild (node,
xml_write_int ("mdi-mode",
prefs->gnome_prefs->mdi_mode));
xmlAddChild (node,
xml_write_int ("mdi-tab-pos",
prefs->gnome_prefs->mdi_tab_pos));
xmlAddChild (node,
xml_write_bool ("dialog-use-icons",
prefs->dialog_use_icons));
xmlDocSetRootElement (doc, node);
return doc;
}
/* Read a numeric value from a node */
static gint
xml_read_int (xmlNodePtr node)
{
char *text;
text = xmlNodeGetContent (node);
if (text == NULL)
return 0;
else
return atoi (text);
}
/* Write out a numeric value in a node */
static xmlNodePtr
xml_write_int (gchar *name, gint number)
{
xmlNodePtr node;
gchar *str;
g_return_val_if_fail (name != NULL, NULL);
str = g_strdup_printf ("%d", number);
node = xmlNewNode (NULL, name);
xmlNodeSetContent (node, str);
g_free (str);
return node;
}
/* Read a boolean value from a node */
static gboolean
xml_read_bool (xmlNodePtr node)
{
char *text;
text = xmlNodeGetContent (node);
if (!g_strcasecmp (text, "true"))
return TRUE;
else
return FALSE;
}
/* Write out a boolean value in a node */
static xmlNodePtr
xml_write_bool (gchar *name, gboolean value)
{
xmlNodePtr node;
g_return_val_if_fail (name != NULL, NULL);
node = xmlNewNode (NULL, name);
if (value)
xmlNodeSetContent (node, "true");
else
xmlNodeSetContent (node, "false");
return node;
}
static gint static gint
apply_timeout_cb (Preferences *prefs) apply_timeout_cb (Preferences *prefs)
{ {
@ -456,64 +219,13 @@ apply_timeout_cb (Preferences *prefs)
return TRUE; return TRUE;
} }
GtkButtonBoxStyle int
preferences_get_dialog_buttons_style (Preferences *prefs) preferences_get_dialog_buttons_style (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->dialog_buttons_style; return prefs->gnome_prefs.dialog_buttons_style;
}
int
preferences_get_property_box_buttons_ok (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->property_box_buttons_ok;
}
int
preferences_get_property_box_buttons_apply (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->property_box_buttons_apply;
}
int
preferences_get_property_box_buttons_close (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->property_box_buttons_close;
}
int
preferences_get_property_box_buttons_help (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->property_box_buttons_help;
}
int
preferences_get_statusbar_not_dialog (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->statusbar_not_dialog;
} }
int int
@ -521,9 +233,8 @@ preferences_get_statusbar_is_interactive (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->statusbar_is_interactive; return prefs->gnome_prefs.statusbar_is_interactive;
} }
int int
@ -531,9 +242,8 @@ preferences_get_statusbar_meter_on_right (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->statusbar_meter_on_right; return prefs->gnome_prefs.statusbar_meter_on_right;
} }
int int
@ -541,9 +251,8 @@ preferences_get_statusbar_meter_on_left (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return !prefs->gnome_prefs->statusbar_meter_on_right; return !prefs->gnome_prefs.statusbar_meter_on_right;
} }
int int
@ -551,9 +260,8 @@ preferences_get_menubar_detachable (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->menubar_detachable; return prefs->gnome_prefs.menubar_detachable;
} }
int int
@ -561,9 +269,8 @@ preferences_get_menubar_relief (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->menubar_relief; return prefs->gnome_prefs.menubar_relief;
} }
int int
@ -571,9 +278,8 @@ preferences_get_toolbar_detachable (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->toolbar_detachable; return prefs->gnome_prefs.toolbar_detachable;
} }
int int
@ -581,29 +287,8 @@ preferences_get_toolbar_relief (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->toolbar_relief; return prefs->gnome_prefs.toolbar_relief;
}
int
preferences_get_toolbar_relief_btn (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->toolbar_relief_btn;
}
int
preferences_get_toolbar_lines (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->toolbar_lines;
} }
int int
@ -611,9 +296,8 @@ preferences_get_toolbar_icons_only (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return !prefs->gnome_prefs->toolbar_labels; return !prefs->gnome_prefs.toolbar_labels;
} }
int int
@ -621,9 +305,8 @@ preferences_get_toolbar_text_below (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->toolbar_labels; return prefs->gnome_prefs.toolbar_labels;
} }
int int
@ -631,9 +314,8 @@ preferences_get_dialog_centered (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->dialog_centered; return TRUE;
} }
int int
@ -641,9 +323,8 @@ preferences_get_menus_have_tearoff (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->menus_have_tearoff; return prefs->gnome_prefs.menus_have_tearoff;
} }
int int
@ -651,19 +332,8 @@ preferences_get_menus_have_icons (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->menus_have_icons; return prefs->gnome_prefs.menus_show_icons;
}
int
preferences_get_disable_imlib_cache (Preferences *prefs)
{
g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->disable_imlib_cache;
} }
GtkWindowType GtkWindowType
@ -671,9 +341,8 @@ preferences_get_dialog_type (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->dialog_type; return 0;
} }
GtkWindowPosition GtkWindowPosition
@ -681,9 +350,8 @@ preferences_get_dialog_position (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->dialog_position; return 0;
} }
GnomeMDIMode GnomeMDIMode
@ -691,9 +359,8 @@ preferences_get_mdi_mode (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->mdi_mode; return 0;
} }
GtkPositionType GtkPositionType
@ -701,9 +368,8 @@ preferences_get_mdi_tab_pos (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->gnome_prefs->mdi_tab_pos; return 0;
} }
int int
@ -711,9 +377,8 @@ preferences_get_dialog_icons (Preferences *prefs)
{ {
g_return_val_if_fail (prefs != NULL, 0); g_return_val_if_fail (prefs != NULL, 0);
g_return_val_if_fail (IS_PREFERENCES (prefs), 0); g_return_val_if_fail (IS_PREFERENCES (prefs), 0);
g_return_val_if_fail (prefs->gnome_prefs != NULL, 0);
return prefs->dialog_use_icons; return prefs->gnome_prefs.dialog_icons;
} }
void void
@ -721,59 +386,8 @@ preferences_set_dialog_buttons_style (Preferences *prefs, int style)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->dialog_buttons_style = style; prefs->gnome_prefs.dialog_buttons_style = style;
}
void
preferences_set_property_box_buttons_ok (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->property_box_buttons_ok = s;
}
void
set_property_set_property_box_buttons_apply (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->property_box_buttons_apply = s;
}
void
preferences_set_property_box_buttons_close (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->property_box_buttons_close = s;
}
void
preferences_set_property_box_buttons_help (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->property_box_buttons_help = s;
}
void
preferences_set_statusbar_not_dialog (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->statusbar_not_dialog = s;
} }
void void
@ -781,9 +395,8 @@ preferences_set_statusbar_is_interactive (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->statusbar_is_interactive = s; prefs->gnome_prefs.statusbar_is_interactive = s;
} }
void void
@ -791,9 +404,8 @@ preferences_set_statusbar_meter_on_right (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->statusbar_meter_on_right = s; prefs->gnome_prefs.statusbar_meter_on_right = s;
} }
void void
@ -801,9 +413,8 @@ preferences_set_statusbar_meter_on_left (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->statusbar_meter_on_right = !s; prefs->gnome_prefs.statusbar_meter_on_right = !s;
} }
void void
@ -811,9 +422,8 @@ preferences_set_menubar_detachable (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->menubar_detachable = s; prefs->gnome_prefs.menubar_detachable = s;
} }
void void
@ -821,9 +431,8 @@ preferences_set_menubar_relief (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->menubar_relief = s; prefs->gnome_prefs.menubar_relief = s;
} }
void void
@ -831,9 +440,8 @@ preferences_set_toolbar_detachable (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->toolbar_detachable = s; prefs->gnome_prefs.toolbar_detachable = s;
} }
void void
@ -841,29 +449,8 @@ preferences_set_toolbar_relief (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->toolbar_relief = s; prefs->gnome_prefs.toolbar_relief = s;
}
void
preferences_set_toolbar_relief_btn (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->toolbar_relief_btn = s;
}
void
preferences_set_toolbar_lines (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->toolbar_lines = s;
} }
void void
@ -871,9 +458,8 @@ preferences_set_toolbar_icons_only (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->toolbar_labels = !s; prefs->gnome_prefs.toolbar_labels = !s;
} }
void void
@ -881,9 +467,8 @@ preferences_set_toolbar_text_below (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->toolbar_labels = s; prefs->gnome_prefs.toolbar_labels = s;
} }
void void
@ -891,9 +476,8 @@ preferences_set_dialog_centered (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->dialog_centered = s; prefs->gnome_prefs.dialog_centered = s;
} }
void void
@ -901,9 +485,8 @@ preferences_set_menus_have_tearoff (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->menus_have_tearoff = s; prefs->gnome_prefs.menus_have_tearoff = s;
} }
void void
@ -911,19 +494,8 @@ preferences_set_menus_have_icons (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->menus_have_icons = s; prefs->gnome_prefs.menus_show_icons = s;
}
void
preferences_set_disable_imlib_cache (Preferences *prefs, int s)
{
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->disable_imlib_cache = s;
} }
void void
@ -931,9 +503,8 @@ preferences_set_dialog_type (Preferences *prefs, int type)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->dialog_type = type; prefs->gnome_prefs.dialog_type = type;
} }
void void
@ -941,9 +512,8 @@ preferences_set_dialog_position (Preferences *prefs, int pos)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->dialog_position = pos; prefs->gnome_prefs.dialog_position = pos;
} }
void void
@ -951,9 +521,8 @@ preferences_set_mdi_mode (Preferences *prefs, int mode)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->mdi_mode = mode; prefs->gnome_prefs.mdi_mode = mode;
} }
void void
@ -961,9 +530,8 @@ preferences_set_mdi_tab_pos (Preferences *prefs, int type)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->gnome_prefs->mdi_tab_pos = type; prefs->gnome_prefs.mdi_tab_pos = type;
} }
void void
@ -971,7 +539,6 @@ preferences_set_dialog_icons (Preferences *prefs, int s)
{ {
g_return_if_fail (prefs != NULL); g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
g_return_if_fail (prefs->gnome_prefs != NULL);
prefs->dialog_use_icons = s; prefs->gnome_prefs.dialog_icons = s;
} }

View file

@ -27,8 +27,6 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gnome.h> #include <gnome.h>
#include <libxml/tree.h>
#define PREFERENCES(obj) GTK_CHECK_CAST (obj, preferences_get_type (), Preferences) #define PREFERENCES(obj) GTK_CHECK_CAST (obj, preferences_get_type (), Preferences)
#define PREFERENCES_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, preferences_get_type (), PreferencesClass) #define PREFERENCES_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, preferences_get_type (), PreferencesClass)
#define IS_PREFERENCES(obj) GTK_CHECK_TYPE (obj, preferences_get_type ()) #define IS_PREFERENCES(obj) GTK_CHECK_TYPE (obj, preferences_get_type ())
@ -43,9 +41,26 @@ struct _Preferences
gint frozen; gint frozen;
guint timeout_id; guint timeout_id;
GnomePreferences *gnome_prefs; struct {
enum { DEFAULT, SPREAD, EDGE, START, END } dialog_buttons_style;
gboolean dialog_use_icons; gboolean dialog_icons;
gboolean dialog_centered;
GtkWindowPosition dialog_position;
GtkWindowType dialog_type;
gboolean menus_show_icons;
gboolean menus_have_tearoff;
gboolean toolbar_labels;
gboolean toolbar_detachable;
gboolean toolbar_relief;
gboolean toolbar_separator;
gboolean toolbar_popup;
gboolean menubar_detachable;
gboolean menubar_relief;
gboolean statusbar_meter_on_right;
gboolean statusbar_is_interactive;
GnomeMDIMode mdi_mode;
GtkPositionType mdi_tab_pos;
} gnome_prefs;
}; };
struct _PreferencesClass struct _PreferencesClass
@ -67,9 +82,6 @@ void preferences_apply_now (Preferences *prefs);
void preferences_freeze (Preferences *prefs); void preferences_freeze (Preferences *prefs);
void preferences_thaw (Preferences *prefs); void preferences_thaw (Preferences *prefs);
Preferences *preferences_read_xml (xmlDocPtr xml_doc);
xmlDocPtr preferences_write_xml (Preferences *prefs);
/* get/set functions. It's really stupid that we need these */ /* get/set functions. It's really stupid that we need these */
int preferences_get_menubar_detachable (Preferences *prefs); int preferences_get_menubar_detachable (Preferences *prefs);
@ -77,15 +89,12 @@ int preferences_get_menubar_relief (Preferences *prefs);
int preferences_get_menus_have_tearoff (Preferences *prefs); int preferences_get_menus_have_tearoff (Preferences *prefs);
int preferences_get_menus_have_icons (Preferences *prefs); int preferences_get_menus_have_icons (Preferences *prefs);
int preferences_get_statusbar_not_dialog (Preferences *prefs);
int preferences_get_statusbar_is_interactive (Preferences *prefs); int preferences_get_statusbar_is_interactive (Preferences *prefs);
int preferences_get_statusbar_meter_on_left (Preferences *prefs); int preferences_get_statusbar_meter_on_left (Preferences *prefs);
int preferences_get_statusbar_meter_on_right (Preferences *prefs); int preferences_get_statusbar_meter_on_right (Preferences *prefs);
int preferences_get_toolbar_detachable (Preferences *prefs); int preferences_get_toolbar_detachable (Preferences *prefs);
int preferences_get_toolbar_relief (Preferences *prefs); int preferences_get_toolbar_relief (Preferences *prefs);
int preferences_get_toolbar_relief_btn (Preferences *prefs);
int preferences_get_toolbar_lines (Preferences *prefs);
int preferences_get_toolbar_icons_only (Preferences *prefs); int preferences_get_toolbar_icons_only (Preferences *prefs);
int preferences_get_toolbar_text_below (Preferences *prefs); int preferences_get_toolbar_text_below (Preferences *prefs);
@ -94,7 +103,7 @@ int preferences_get_dialog_centered (Preferences *prefs);
GtkWindowPosition preferences_get_dialog_position (Preferences *prefs); GtkWindowPosition preferences_get_dialog_position (Preferences *prefs);
GtkWindowType preferences_get_dialog_type (Preferences *prefs); GtkWindowType preferences_get_dialog_type (Preferences *prefs);
GtkButtonBoxStyle preferences_get_dialog_buttons_style (Preferences *prefs); int preferences_get_dialog_buttons_style (Preferences *prefs);
GnomeMDIMode preferences_get_mdi_mode (Preferences *prefs); GnomeMDIMode preferences_get_mdi_mode (Preferences *prefs);
GtkPositionType preferences_get_mdi_tab_pos (Preferences *prefs); GtkPositionType preferences_get_mdi_tab_pos (Preferences *prefs);
@ -117,15 +126,12 @@ void preferences_set_menubar_relief (Preferences *prefs, int
void preferences_set_menus_have_tearoff (Preferences *prefs, int i); void preferences_set_menus_have_tearoff (Preferences *prefs, int i);
void preferences_set_menus_have_icons (Preferences *prefs, int i); void preferences_set_menus_have_icons (Preferences *prefs, int i);
void preferences_set_statusbar_not_dialog (Preferences *prefs, int i);
void preferences_set_statusbar_is_interactive (Preferences *prefs, int i); void preferences_set_statusbar_is_interactive (Preferences *prefs, int i);
void preferences_set_statusbar_meter_on_left (Preferences *prefs, int i); void preferences_set_statusbar_meter_on_left (Preferences *prefs, int i);
void preferences_set_statusbar_meter_on_right (Preferences *prefs, int i); void preferences_set_statusbar_meter_on_right (Preferences *prefs, int i);
void preferences_set_toolbar_detachable (Preferences *prefs, int i); void preferences_set_toolbar_detachable (Preferences *prefs, int i);
void preferences_set_toolbar_relief (Preferences *prefs, int i); void preferences_set_toolbar_relief (Preferences *prefs, int i);
void preferences_set_toolbar_relief_btn (Preferences *prefs, int i);
void preferences_set_toolbar_lines (Preferences *prefs, int i);
void preferences_set_toolbar_icons_only (Preferences *prefs, int i); void preferences_set_toolbar_icons_only (Preferences *prefs, int i);
void preferences_set_toolbar_text_below (Preferences *prefs, int i); void preferences_set_toolbar_text_below (Preferences *prefs, int i);

View file

@ -40,8 +40,6 @@ static widget_desc_t widget_desc[] = {
WD_CHECK (statusbar_meter_on_right, "statusbar_meter_on_right"), WD_CHECK (statusbar_meter_on_right, "statusbar_meter_on_right"),
WD_CHECK (toolbar_detachable, "toolbar_detachable"), WD_CHECK (toolbar_detachable, "toolbar_detachable"),
WD_CHECK (toolbar_relief, "toolbar_relief"), WD_CHECK (toolbar_relief, "toolbar_relief"),
WD_CHECK (toolbar_relief_btn, "toolbar_relief_btn"),
WD_CHECK (toolbar_lines, "toolbar_lines"),
/* WD_CHECK (toolbar_labels, "toolbar_labels"), */ /* WD_CHECK (toolbar_labels, "toolbar_labels"), */
WD_END WD_END
}; };
@ -61,8 +59,8 @@ prefs_widget_app_get_type (void)
sizeof (PrefsWidgetAppClass), sizeof (PrefsWidgetAppClass),
(GtkClassInitFunc) prefs_widget_app_class_init, (GtkClassInitFunc) prefs_widget_app_class_init,
(GtkObjectInitFunc) prefs_widget_app_init, (GtkObjectInitFunc) prefs_widget_app_init,
(GtkArgSetFunc) NULL, NULL,
(GtkArgGetFunc) NULL NULL
}; };
prefs_widget_app_type = prefs_widget_app_type =
@ -99,7 +97,7 @@ prefs_widget_app_new (Preferences *prefs)
g_return_val_if_fail (prefs == NULL || IS_PREFERENCES (prefs), NULL); g_return_val_if_fail (prefs == NULL || IS_PREFERENCES (prefs), NULL);
dialog_data = glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade", dialog_data = glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade",
"prefs_widget_app"); "prefs_widget_app", NULL);
widget = gtk_widget_new (prefs_widget_app_get_type (), widget = gtk_widget_new (prefs_widget_app_get_type (),
"dialog_data", dialog_data, "dialog_data", dialog_data,

View file

@ -33,7 +33,6 @@ static PrefsWidgetClass *parent_class;
static widget_desc_t widget_desc[] = { static widget_desc_t widget_desc[] = {
WD_OPTION (dialog_buttons_style, "dialog_buttons_style"), WD_OPTION (dialog_buttons_style, "dialog_buttons_style"),
WD_CHECK (statusbar_not_dialog, "statusbar_not_dialog"),
WD_OPTION (dialog_position, "dialog_position"), WD_OPTION (dialog_position, "dialog_position"),
WD_OPTION (dialog_type, "dialog_type"), WD_OPTION (dialog_type, "dialog_type"),
WD_CHECK (dialog_centered, "dialog_centered"), WD_CHECK (dialog_centered, "dialog_centered"),
@ -56,8 +55,8 @@ prefs_widget_dialogs_get_type (void)
sizeof (PrefsWidgetDialogsClass), sizeof (PrefsWidgetDialogsClass),
(GtkClassInitFunc) prefs_widget_dialogs_class_init, (GtkClassInitFunc) prefs_widget_dialogs_class_init,
(GtkObjectInitFunc) prefs_widget_dialogs_init, (GtkObjectInitFunc) prefs_widget_dialogs_init,
(GtkArgSetFunc) NULL, NULL,
(GtkArgGetFunc) NULL NULL
}; };
prefs_widget_dialogs_type = prefs_widget_dialogs_type =
@ -95,7 +94,7 @@ prefs_widget_dialogs_new (Preferences *prefs)
dialog_data = dialog_data =
glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade", glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade",
"prefs_widget_dialogs"); "prefs_widget_dialogs", NULL);
widget = gtk_widget_new (prefs_widget_dialogs_get_type (), widget = gtk_widget_new (prefs_widget_dialogs_get_type (),
"dialog_data", dialog_data, "dialog_data", dialog_data,

View file

@ -52,8 +52,8 @@ prefs_widget_mdi_get_type (void)
sizeof (PrefsWidgetMDIClass), sizeof (PrefsWidgetMDIClass),
(GtkClassInitFunc) prefs_widget_mdi_class_init, (GtkClassInitFunc) prefs_widget_mdi_class_init,
(GtkObjectInitFunc) prefs_widget_mdi_init, (GtkObjectInitFunc) prefs_widget_mdi_init,
(GtkArgSetFunc) NULL, NULL,
(GtkArgGetFunc) NULL NULL
}; };
prefs_widget_mdi_type = prefs_widget_mdi_type =
@ -91,7 +91,7 @@ prefs_widget_mdi_new (Preferences *prefs)
dialog_data = dialog_data =
glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade", glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade",
"prefs_widget_mdi"); "prefs_widget_mdi", NULL);
widget = gtk_widget_new (prefs_widget_mdi_get_type (), widget = gtk_widget_new (prefs_widget_mdi_get_type (),
"dialog_data", dialog_data, "dialog_data", dialog_data,

View file

@ -37,15 +37,12 @@ static widget_desc_t widget_desc[] = {
WD_CHECK (menus_have_tearoff, "menus_have_tearoff"), WD_CHECK (menus_have_tearoff, "menus_have_tearoff"),
WD_CHECK (menus_have_icons, "menus_have_icons"), WD_CHECK (menus_have_icons, "menus_have_icons"),
WD_CHECK (statusbar_not_dialog, "statusbar_not_dialog"),
WD_CHECK (statusbar_is_interactive, "statusbar_is_interactive"), WD_CHECK (statusbar_is_interactive, "statusbar_is_interactive"),
WD_CHECK (statusbar_meter_on_left , "statusbar_meter_on_left"), WD_CHECK (statusbar_meter_on_left , "statusbar_meter_on_left"),
WD_CHECK (statusbar_meter_on_right, "statusbar_meter_on_right"), WD_CHECK (statusbar_meter_on_right, "statusbar_meter_on_right"),
WD_CHECK (toolbar_detachable, "toolbar_detachable"), WD_CHECK (toolbar_detachable, "toolbar_detachable"),
WD_CHECK (toolbar_relief, "toolbar_relief"), WD_CHECK (toolbar_relief, "toolbar_relief"),
WD_CHECK (toolbar_relief_btn, "toolbar_relief_btn"),
WD_CHECK (toolbar_lines, "toolbar_lines"),
WD_CHECK (toolbar_icons_only, "toolbar_icons_only"), WD_CHECK (toolbar_icons_only, "toolbar_icons_only"),
WD_CHECK (toolbar_text_below, "toolbar_text_below"), WD_CHECK (toolbar_text_below, "toolbar_text_below"),
@ -75,7 +72,7 @@ enum {
static guint prefs_widget_signals[LAST_SIGNAL] = { 0 }; static guint prefs_widget_signals[LAST_SIGNAL] = { 0 };
static CappletWidgetClass *parent_class; static GtkDialogClass *parent_class;
static void prefs_widget_init (PrefsWidget *prefs_widget); static void prefs_widget_init (PrefsWidget *prefs_widget);
static void prefs_widget_class_init (PrefsWidgetClass *class); static void prefs_widget_class_init (PrefsWidgetClass *class);
@ -101,6 +98,10 @@ static void toggled_cb (GtkToggleButton *tb,
PrefsWidget *prefs_widget); PrefsWidget *prefs_widget);
static void selected_cb (GtkMenuItem *mi, static void selected_cb (GtkMenuItem *mi,
PrefsWidget *prefs_widget); PrefsWidget *prefs_widget);
static void capplet_widget_state_changed (GtkDialog *dialog, gboolean state);
static void prefs_widget_response_cb (PrefsWidget *prefs_widget, GtkResponseType response, gpointer data);
#define CAPPLET_WIDGET(x) GTK_DIALOG(x)
guint guint
prefs_widget_get_type (void) prefs_widget_get_type (void)
@ -114,12 +115,12 @@ prefs_widget_get_type (void)
sizeof (PrefsWidgetClass), sizeof (PrefsWidgetClass),
(GtkClassInitFunc) prefs_widget_class_init, (GtkClassInitFunc) prefs_widget_class_init,
(GtkObjectInitFunc) prefs_widget_init, (GtkObjectInitFunc) prefs_widget_init,
(GtkArgSetFunc) NULL, NULL,
(GtkArgGetFunc) NULL NULL
}; };
prefs_widget_type = prefs_widget_type =
gtk_type_unique (capplet_widget_get_type (), gtk_type_unique (gtk_dialog_get_type (),
&prefs_widget_info); &prefs_widget_info);
} }
@ -129,6 +130,14 @@ prefs_widget_get_type (void)
static void static void
prefs_widget_init (PrefsWidget *prefs_widget) prefs_widget_init (PrefsWidget *prefs_widget)
{ {
gtk_dialog_add_buttons (GTK_DIALOG (prefs_widget),
GTK_STOCK_HELP, GTK_RESPONSE_HELP,
GTK_STOCK_APPLY, GTK_RESPONSE_APPLY,
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
NULL);
gtk_dialog_set_response_sensitive (GTK_DIALOG (prefs_widget), GTK_RESPONSE_APPLY, FALSE);
g_signal_connect (G_OBJECT (prefs_widget), "response",
prefs_widget_response_cb, NULL);
} }
static void static void
@ -152,19 +161,16 @@ prefs_widget_class_init (PrefsWidgetClass *class)
prefs_widget_signals[READ_PREFERENCES] = prefs_widget_signals[READ_PREFERENCES] =
gtk_signal_new ("read-preferences", gtk_signal_new ("read-preferences",
GTK_RUN_FIRST, GTK_RUN_FIRST,
object_class->type, G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (object_class)),
GTK_SIGNAL_OFFSET (PrefsWidgetClass, GTK_SIGNAL_OFFSET (PrefsWidgetClass,
read_preferences), read_preferences),
gtk_marshal_NONE__POINTER, gtk_marshal_NONE__POINTER,
GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); GTK_TYPE_NONE, 1, GTK_TYPE_POINTER);
gtk_object_class_add_signals (object_class, prefs_widget_signals,
LAST_SIGNAL);
class->read_preferences = read_preferences; class->read_preferences = read_preferences;
parent_class = CAPPLET_WIDGET_CLASS parent_class = GTK_DIALOG_CLASS
(gtk_type_class (capplet_widget_get_type ())); (g_type_class_ref (gtk_dialog_get_type ()));
class->widget_desc = widget_desc; class->widget_desc = widget_desc;
} }
@ -200,14 +206,14 @@ prefs_widget_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
case ARG_DIALOG_DATA: case ARG_DIALOG_DATA:
if (prefs_widget->dialog_data) if (prefs_widget->dialog_data)
gtk_object_unref g_object_unref
(GTK_OBJECT (prefs_widget->dialog_data)); (G_OBJECT (prefs_widget->dialog_data));
prefs_widget->dialog_data = GTK_VALUE_POINTER (*arg); prefs_widget->dialog_data = GTK_VALUE_POINTER (*arg);
if (prefs_widget->dialog_data) { if (prefs_widget->dialog_data) {
gtk_object_ref g_object_ref
(GTK_OBJECT (prefs_widget->dialog_data)); (G_OBJECT (prefs_widget->dialog_data));
if (prefs_widget->prefs) if (prefs_widget->prefs)
gtk_signal_emit gtk_signal_emit
(GTK_OBJECT (prefs_widget), (GTK_OBJECT (prefs_widget),
@ -260,7 +266,7 @@ prefs_widget_new (Preferences *prefs)
g_return_val_if_fail (prefs == NULL || IS_PREFERENCES (prefs), NULL); g_return_val_if_fail (prefs == NULL || IS_PREFERENCES (prefs), NULL);
dialog_data = glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade", dialog_data = glade_xml_new (GNOMECC_GLADE_DIR "/behavior-properties.glade",
"prefs_widget"); "prefs_widget", NULL);
widget = gtk_widget_new (prefs_widget_get_type (), widget = gtk_widget_new (prefs_widget_get_type (),
"preferences", prefs, "preferences", prefs,
@ -268,7 +274,8 @@ prefs_widget_new (Preferences *prefs)
NULL); NULL);
dlg_widget = glade_xml_get_widget (dialog_data, "prefs_widget"); dlg_widget = glade_xml_get_widget (dialog_data, "prefs_widget");
gtk_container_add (GTK_CONTAINER (widget), dlg_widget); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (widget)->vbox), dlg_widget,
TRUE, TRUE, 0);
return widget; return widget;
} }
@ -296,8 +303,8 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs)
g_return_if_fail (IS_PREFERENCES (prefs)); g_return_if_fail (IS_PREFERENCES (prefs));
widget_desc = widget_desc =
PREFS_WIDGET_CLASS (GTK_OBJECT PREFS_WIDGET_CLASS (G_OBJECT_GET_CLASS (G_OBJECT
(prefs_widget)->klass)->widget_desc; (prefs_widget)))->widget_desc;
g_return_if_fail (widget_desc != NULL); g_return_if_fail (widget_desc != NULL);
@ -340,8 +347,8 @@ register_callbacks (PrefsWidget *prefs_widget, GladeXML *dialog_data)
g_return_if_fail (dialog_data != NULL); g_return_if_fail (dialog_data != NULL);
g_return_if_fail (GLADE_IS_XML (dialog_data)); g_return_if_fail (GLADE_IS_XML (dialog_data));
widget_desc = PREFS_WIDGET_CLASS (GTK_OBJECT widget_desc = PREFS_WIDGET_CLASS (G_OBJECT_GET_CLASS (G_OBJECT
(prefs_widget)->klass)->widget_desc; (prefs_widget)))->widget_desc;
if (widget_desc == NULL) if (widget_desc == NULL)
return; return;
@ -395,8 +402,8 @@ find_widget_desc_with_name (PrefsWidget *prefs_widget, const char *name)
g_return_val_if_fail (name != NULL, NULL); g_return_val_if_fail (name != NULL, NULL);
widget_desc = widget_desc =
PREFS_WIDGET_CLASS (GTK_OBJECT PREFS_WIDGET_CLASS (G_OBJECT_GET_CLASS (G_OBJECT
(prefs_widget)->klass)->widget_desc; (prefs_widget)))->widget_desc;
g_return_val_if_fail (widget_desc != NULL, NULL); g_return_val_if_fail (widget_desc != NULL, NULL);
@ -458,3 +465,24 @@ selected_cb (GtkMenuItem *mi, PrefsWidget *prefs_widget)
capplet_widget_state_changed (CAPPLET_WIDGET (prefs_widget), TRUE); capplet_widget_state_changed (CAPPLET_WIDGET (prefs_widget), TRUE);
} }
} }
static void
capplet_widget_state_changed (GtkDialog *dialog, gboolean state)
{
gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_APPLY, state);
}
static void
prefs_widget_response_cb (PrefsWidget *prefs_widget, GtkResponseType response, gpointer data)
{
switch (response)
{
case GTK_RESPONSE_APPLY:
preferences_save (prefs_widget->prefs);
break;
case GTK_RESPONSE_CLOSE:
gtk_main_quit ();
break;
}
}

View file

@ -26,7 +26,6 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <glade/glade.h> #include <glade/glade.h>
#include <capplet-widget.h>
#include "preferences.h" #include "preferences.h"
@ -70,7 +69,7 @@ typedef struct _PrefsWidgetClass PrefsWidgetClass;
struct _PrefsWidget struct _PrefsWidget
{ {
CappletWidget capplet_widget; GtkDialog capplet_widget;
Preferences *prefs; Preferences *prefs;
GladeXML *dialog_data; GladeXML *dialog_data;
@ -78,7 +77,7 @@ struct _PrefsWidget
struct _PrefsWidgetClass struct _PrefsWidgetClass
{ {
CappletWidgetClass parent_class; GtkDialogClass parent_class;
void (*read_preferences) (PrefsWidget *prefs_widget, void (*read_preferences) (PrefsWidget *prefs_widget,
Preferences *prefs); Preferences *prefs);

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,6 @@ gchar *s = N_("Tool bar buttons are icons only");
gchar *s = N_("Tool bar buttons are text below icons"); gchar *s = N_("Tool bar buttons are text below icons");
gchar *s = N_("Interface"); gchar *s = N_("Interface");
gchar *s = N_("Dialogs"); gchar *s = N_("Dialogs");
gchar *s = N_("Dialog buttons have icons");
gchar *s = N_("Place dialogs over application window when possible"); gchar *s = N_("Place dialogs over application window when possible");
gchar *s = N_("Dialogs open"); gchar *s = N_("Dialogs open");
gchar *s = N_("Wherever the Window Manager places them"); gchar *s = N_("Wherever the Window Manager places them");
@ -33,12 +32,6 @@ gchar *s = N_("At the mouse pointer");
gchar *s = N_("Dialogs are treated"); gchar *s = N_("Dialogs are treated");
gchar *s = N_("Like any other window"); gchar *s = N_("Like any other window");
gchar *s = N_("Specially by the window manager"); gchar *s = N_("Specially by the window manager");
gchar *s = N_("Dialog Buttons");
gchar *s = N_("Default (Spread out - big)");
gchar *s = N_("Spread out");
gchar *s = N_("Spread out (big)");
gchar *s = N_("Left aligned");
gchar *s = N_("Right aligned");
gchar *s = N_("Multiple Documents"); gchar *s = N_("Multiple Documents");
gchar *s = N_("Notebook tabs"); gchar *s = N_("Notebook tabs");
gchar *s = N_("Seperate windows"); gchar *s = N_("Seperate windows");