Use a peditor for the visual bell instead.

Fri Jun  6 19:16:43 2003  Jonathan Blandford  <jrb@gnome.org>

	* sound-properties-capplet.c (bell_flash_to_widget),
	(bell_flash_from_widget): Use a peditor for the visual bell
	instead.

2003-06-06  Bill Haneman <bill.haneman@sun.com>

	* sound-properties.glade:
	Added page tab and UI from "visual bell" capplet
	(UI originally from Calum, except for ugly icon)

	* visual-bell.png:
	Ugly new icon which needs TLC from Calum.

	* sound-properties-capplet.c:
	Added gconf keys for visual bell feature and control of
	audio bell.
	(visual_bell_type_changed): New, called when visual bell radiobuttons
	are toggled.
	(create_dialog):
	Set the image on the "System Bell" notebook tab.
	(setup_dialog):
	Added peditors for visual-bell and audio-bell checkboxes/gconf keys.
	Added guards for the visual-bell type buttons, controlled by
	the visual-bell-enabling checkbox.
	Connected visual_bell_type_changed to "toggled" signal on radiobuttons.
This commit is contained in:
Bill Haneman 2003-06-06 23:20:37 +00:00 committed by Jonathan Blandford
parent 27cd2a87b0
commit be432c9acb
4 changed files with 311 additions and 16 deletions

View file

@ -1,3 +1,31 @@
Fri Jun 6 19:16:43 2003 Jonathan Blandford <jrb@gnome.org>
* sound-properties-capplet.c (bell_flash_to_widget),
(bell_flash_from_widget): Use a peditor for the visual bell
instead.
2003-06-06 Bill Haneman <bill.haneman@sun.com>
* sound-properties.glade:
Added page tab and UI from "visual bell" capplet
(UI originally from Calum, except for ugly icon)
* visual-bell.png:
Ugly new icon which needs TLC from Calum.
* sound-properties-capplet.c:
Added gconf keys for visual bell feature and control of
audio bell.
(visual_bell_type_changed): New, called when visual bell radiobuttons
are toggled.
(create_dialog):
Set the image on the "System Bell" notebook tab.
(setup_dialog):
Added peditors for visual-bell and audio-bell checkboxes/gconf keys.
Added guards for the visual-bell type buttons, controlled by
the visual-bell-enabling checkbox.
Connected visual_bell_type_changed to "toggled" signal on radiobuttons.
2003-05-07 Jody Goldberg <jody@gnome.org>
* Release 2.3.1

View file

@ -11,8 +11,8 @@ Glade_DATA = sound-properties.glade
iconsdir = $(GNOMECC_ICONS_DIR)
icons_DATA = sound-capplet.png
desktop_iconsdir = $(datadir)/pixmaps
desktop_icons_DATA = sound-capplet.png
desktop_iconsdir = $(GNOMECC_PIXMAPS_DIR)
desktop_icons_DATA = sound-capplet.png visual-bell.png
desktopdir = $(GNOMECC_DESKTOP_DIR)
Desktop_in_files = sound.desktop.in
@ -20,5 +20,5 @@ desktop_DATA = $(Desktop_in_files:.desktop.in=.desktop)
INCLUDES = $(GNOMECC_CAPPLETS_CFLAGS) $(SOUND_CAPPLET_CFLAGS)
CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES)
EXTRA_DIST = $(Glade_DATA) $(icons_DATA) $(Desktop_in_files)
EXTRA_DIST = $(Glade_DATA) $(desktop_icons_DATA) $(Desktop_in_files)

View file

@ -41,6 +41,12 @@
#include "activate-settings-daemon.h"
#define ENABLE_ESD_KEY "/desktop/gnome/sound/enable_esd"
#define EVENT_SOUNDS_KEY "/desktop/gnome/sound/event_sounds"
#define VISUAL_BELL_KEY "/apps/metacity/general/visual_bell"
#define AUDIO_BELL_KEY "/apps/metacity/general/audible_bell"
#define VISUAL_BELL_TYPE_KEY "/apps/metacity/general/visual_bell_type"
/* Capplet-specific prototypes */
static SoundProperties *props = NULL;
@ -51,6 +57,46 @@ props_changed_cb (SoundProperties *p, SoundEvent *event, gpointer data)
sound_properties_user_save (p);
}
static GConfEnumStringPair bell_flash_enums[] = {
{ 0, "frame_flash" },
{ 1, "fullscreen_flash" },
{ -1, NULL }
};
static GConfValue *
bell_flash_from_widget (GConfPropertyEditor *peditor, const GConfValue *value)
{
GConfValue *new_value;
new_value = gconf_value_new (GCONF_VALUE_STRING);
gconf_value_set_string (new_value,
gconf_enum_to_string (bell_flash_enums, gconf_value_get_int (value)));
return new_value;
}
static GConfValue *
bell_flash_to_widget (GConfPropertyEditor *peditor, const GConfValue *value)
{
GConfValue *new_value;
const gchar *str;
gint val = 2;
str = (value && (value->type == GCONF_VALUE_STRING)) ? gconf_value_get_string (value) : NULL;
new_value = gconf_value_new (GCONF_VALUE_INT);
if (value->type == GCONF_VALUE_STRING) {
gconf_string_to_enum (bell_flash_enums,
str,
&val);
}
gconf_value_set_int (new_value, val);
return new_value;
}
/* create_dialog
*
* Create the dialog box and return it as a GtkWidget
@ -59,27 +105,30 @@ props_changed_cb (SoundProperties *p, SoundEvent *event, gpointer data)
static GladeXML *
create_dialog (void)
{
GladeXML *data;
GladeXML *dialog;
GtkWidget *widget, *box;
data = glade_xml_new (GNOMECC_DATA_DIR "/interfaces/sound-properties.glade", "prefs_widget", NULL);
widget = glade_xml_get_widget (data, "prefs_widget");
g_object_set_data (G_OBJECT (widget), "glade-data", data);
dialog = glade_xml_new (GNOMECC_DATA_DIR "/interfaces/sound-properties.glade", "prefs_widget", NULL);
widget = glade_xml_get_widget (dialog, "prefs_widget");
g_object_set_data (G_OBJECT (widget), "glade-data", dialog);
props = sound_properties_new ();
sound_properties_add_defaults (props, NULL);
g_signal_connect (G_OBJECT (props), "event_changed",
(GCallback) props_changed_cb, NULL);
box = glade_xml_get_widget (data, "events_vbox");
box = glade_xml_get_widget (dialog, "events_vbox");
gtk_box_pack_start (GTK_BOX (box), sound_view_new (props),
TRUE, TRUE, 0);
g_signal_connect_swapped (G_OBJECT (widget), "destroy",
(GCallback) gtk_object_destroy, props);
gtk_widget_set_size_request (widget, -1, 250);
gtk_image_set_from_file (GTK_IMAGE (WID ("bell_image")),
GNOMECC_DATA_DIR "/pixmaps/visual-bell.png");
return data;
gtk_widget_set_size_request (widget, -1, 250); /* Can this be right? Seems broken for large fonts. */
return dialog;
}
/* setup_dialog
@ -91,11 +140,27 @@ static void
setup_dialog (GladeXML *dialog, GConfChangeSet *changeset)
{
GObject *peditor;
gchar *visual_type;
GtkWidget *flash_titlebar_widget, *flash_screen_widget;
peditor = gconf_peditor_new_boolean (NULL, "/desktop/gnome/sound/enable_esd", WID ("enable_toggle"), NULL);
peditor = gconf_peditor_new_boolean (NULL, ENABLE_ESD_KEY, WID ("enable_toggle"), NULL);
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("events_toggle"));
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("events_vbox"));
peditor = gconf_peditor_new_boolean (NULL, "/desktop/gnome/sound/event_sounds", WID ("events_toggle"), NULL);
gconf_peditor_new_boolean (NULL, EVENT_SOUNDS_KEY, WID ("events_toggle"), NULL);
gconf_peditor_new_boolean (NULL, AUDIO_BELL_KEY, WID ("bell_audible_toggle"), NULL);
peditor = gconf_peditor_new_boolean (NULL, VISUAL_BELL_KEY, WID ("bell_visual_toggle"), NULL);
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("bell_flash_vbox"));
/* peditor not so convenient for the radiobuttons */
gconf_peditor_new_select_radio (NULL,
VISUAL_BELL_TYPE_KEY,
gtk_radio_button_get_group (GTK_RADIO_BUTTON (WID ("bell_flash_window_radio"))),
"conv-to-widget-cb", bell_flash_to_widget,
"conv-from-widget-cb", bell_flash_from_widget,
NULL);
}
/* get_legacy_settings
@ -163,6 +228,7 @@ main (int argc, char **argv)
client = gconf_client_get_default ();
gconf_client_add_dir (client, "/desktop/gnome/sound", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
gconf_client_add_dir (client, "/apps/metacity/general", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
if (get_legacy) {
get_legacy_settings ();

View file

@ -20,15 +20,14 @@
<property name="show_border">True</property>
<property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property>
<property name="tab_hborder">2</property>
<property name="tab_vborder">2</property>
<property name="enable_popup">False</property>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="border_width">8</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">5</property>
<property name="spacing">8</property>
<child>
<widget class="GtkCheckButton" id="enable_toggle">
@ -95,6 +94,7 @@
<child>
<widget class="GtkVBox" id="events_vbox">
<property name="border_width">8</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
@ -106,9 +106,210 @@
</child>
<child>
<widget class="GtkLabel" id="label2">
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">Sound Events</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="bell_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkHBox" id="hbox2">
<property name="border_width">8</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">8</property>
<child>
<widget class="GtkImage" id="bell_image">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox4">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">3</property>
<child>
<widget class="GtkCheckButton" id="bell_audible_toggle">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Sound an audible bell</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">True</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="bell_visual_toggle">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Visual feedback:</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox3">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">1</property>
<child>
<widget class="GtkFrame" id="frame2">
<property name="width_request">20</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<child>
<placeholder/>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="bell_flash_vbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">3</property>
<child>
<widget class="GtkRadioButton" id="bell_flash_window_radio">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Flash _window titlebar</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="bell_flash_screen_radio">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Flash entire _screen</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">bell_flash_window_radio</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">System Bell</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>