static void
cc_ua_panel_init_hearing (CcUaPanel *self)
{
  CcUaPanelPrivate *priv = self->priv;
  GtkWidget *w;
  GConfEntry *entry;
  guint id;

  gconf_client_add_dir (priv->client, "/apps/metacity/general",
                        GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);

  w = WID (priv->builder, "hearing_visual_alerts_switch");
  gconf_on_off_peditor_new (priv, "/apps/metacity/general/visual_bell",
                            w, visual_alerts_section);

  /* visual bell type */
  id = gconf_client_notify_add (priv->client,
                                "/apps/metacity/general/visual_bell_type",
                                (GConfClientNotifyFunc)
                                visual_bell_type_notify_cb,
                                self, NULL, NULL);
  priv->notify_list = g_slist_prepend (priv->notify_list, GINT_TO_POINTER (id));

  /* set the initial value */
  entry = gconf_client_get_entry (priv->client,
                                  "/apps/metacity/general/visual_bell_type",
                                  NULL, TRUE, NULL);
  if (entry == NULL)
    g_warning ("The following warning is because metacity's GConf settings aren't installed");
  visual_bell_type_notify_cb (priv->client, 0, entry, self);

  g_signal_connect (WID (priv->builder, "hearing_flash_window_title_button"),
                    "toggled", G_CALLBACK (visual_bell_type_toggle_cb), self);

  /* test flash */
  g_signal_connect (WID (priv->builder, "hearing_test_flash_button"),
                    "clicked", G_CALLBACK (gdk_beep), NULL);

  g_signal_connect (WID (priv->builder, "hearing_sound_preferences_link"),
                    "activate-link",
                    G_CALLBACK (hearing_sound_preferences_clicked), self);
}
static GtkWidget* gconf_dialog_create_proxy_widget (GConfDialog* self, const char* key, GError** error) {
	GtkWidget* result = NULL;
	GError * _inner_error_;
	GConfEntry* entry;
	GConfSchema* schema;
	const char* tooltip;
	GtkBox* row;
	GtkLabel* label;
	GtkWidget* action_widget;
	GtkWidget* render_widget;
	GConfEntry* _tmp10_;
	GtkButton* reset;
	GConfEntry* _tmp11_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (key != NULL, NULL);
	_inner_error_ = NULL;
	entry = gconf_client_get_entry (self->priv->_default_client, key, NULL, TRUE, &_inner_error_);
	if (_inner_error_ != NULL) {
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	schema = gconf_dialog_safely_get_schema (self, entry);
	tooltip = gconf_schema_get_long_desc (schema);
	row = (GtkBox*) g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
	label = g_object_ref_sink ((GtkLabel*) gtk_label_new (gconf_schema_get_short_desc (schema)));
	gtk_label_set_justify (label, GTK_JUSTIFY_LEFT);
	gtk_widget_set_tooltip_text ((GtkWidget*) label, tooltip);
	action_widget = NULL;
	render_widget = NULL;
	switch (gconf_schema_get_type (schema)) {
		case GCONF_VALUE_BOOL:
		{
			GtkCheckButton* checkbox;
			gboolean _tmp0_;
			GtkWidget* _tmp1_;
			GtkWidget* _tmp2_;
			checkbox = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new ());
			_tmp0_ = gconf_client_get_bool (self->priv->_default_client, entry->key, &_inner_error_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_object_unref0 (checkbox);
				_g_object_unref0 (render_widget);
				_g_object_unref0 (action_widget);
				_g_object_unref0 (label);
				_g_object_unref0 (row);
				_gconf_schema_free0 (schema);
				_gconf_entry_unref0 (entry);
				return NULL;
			}
			gtk_toggle_button_set_active ((GtkToggleButton*) checkbox, _tmp0_);
			g_signal_connect_object ((GtkButton*) checkbox, "clicked", (GCallback) _gconf_dialog_onCheckButtonActivated_gtk_button_clicked, self, 0);
			gtk_container_add ((GtkContainer*) checkbox, (GtkWidget*) label);
			render_widget = (_tmp1_ = _g_object_ref0 ((GtkWidget*) checkbox), _g_object_unref0 (render_widget), _tmp1_);
			action_widget = (_tmp2_ = _g_object_ref0 (render_widget), _g_object_unref0 (action_widget), _tmp2_);
			_g_object_unref0 (checkbox);
			break;
		}
		case GCONF_VALUE_STRING:
		{
			GtkEntry* entrybox;
			GtkHBox* box;
			char* _tmp3_;
			char* _tmp4_;
			GtkWidget* _tmp5_;
			GtkWidget* _tmp6_;
			entrybox = g_object_ref_sink ((GtkEntry*) gtk_entry_new ());
			box = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
			_tmp3_ = gconf_client_get_string (self->priv->_default_client, entry->key, &_inner_error_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_object_unref0 (box);
				_g_object_unref0 (entrybox);
				_g_object_unref0 (render_widget);
				_g_object_unref0 (action_widget);
				_g_object_unref0 (label);
				_g_object_unref0 (row);
				_gconf_schema_free0 (schema);
				_gconf_entry_unref0 (entry);
				return NULL;
			}
			gtk_entry_set_text (entrybox, _tmp4_ = _tmp3_);
			_g_free0 (_tmp4_);
			gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) label, FALSE, FALSE, (guint) 2);
			gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) entrybox, FALSE, FALSE, (guint) 2);
			action_widget = (_tmp5_ = _g_object_ref0 ((GtkWidget*) entrybox), _g_object_unref0 (action_widget), _tmp5_);
			render_widget = (_tmp6_ = _g_object_ref0 ((GtkWidget*) box), _g_object_unref0 (render_widget), _tmp6_);
			_g_object_unref0 (box);
			_g_object_unref0 (entrybox);
			break;
		}
		case GCONF_VALUE_INT:
		{
			GtkHBox* box;
			GtkSpinButton* spin;
			gint _tmp7_;
			GtkWidget* _tmp8_;
			GtkWidget* _tmp9_;
			box = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
			spin = g_object_ref_sink ((GtkSpinButton*) gtk_spin_button_new_with_range ((double) (-100), (double) 200, (double) 1));
			_tmp7_ = gconf_client_get_int (self->priv->_default_client, entry->key, &_inner_error_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_object_unref0 (spin);
				_g_object_unref0 (box);
				_g_object_unref0 (render_widget);
				_g_object_unref0 (action_widget);
				_g_object_unref0 (label);
				_g_object_unref0 (row);
				_gconf_schema_free0 (schema);
				_gconf_entry_unref0 (entry);
				return NULL;
			}
			gtk_spin_button_set_value (spin, (double) _tmp7_);
			g_signal_connect_object (spin, "value-changed", (GCallback) _gconf_dialog_onSpinButtonValueChanged_gtk_spin_button_value_changed, self, 0);
			gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) label, FALSE, FALSE, (guint) 2);
			gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) spin, FALSE, FALSE, (guint) 2);
			action_widget = (_tmp8_ = _g_object_ref0 ((GtkWidget*) spin), _g_object_unref0 (action_widget), _tmp8_);
			render_widget = (_tmp9_ = _g_object_ref0 ((GtkWidget*) box), _g_object_unref0 (render_widget), _tmp9_);
			_g_object_unref0 (spin);
			_g_object_unref0 (box);
			break;
		}
		default:
		{
			result = (GtkWidget*) g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
			_g_object_unref0 (render_widget);
			_g_object_unref0 (action_widget);
			_g_object_unref0 (label);
			_g_object_unref0 (row);
			_gconf_schema_free0 (schema);
			_gconf_entry_unref0 (entry);
			return result;
		}
	}
	gtk_widget_set_tooltip_text (action_widget, tooltip);
	g_object_set_data_full ((GObject*) action_widget, "gconf-entry", (_tmp10_ = entry, (_tmp10_ == NULL) ? NULL : gconf_entry_ref (_tmp10_), _tmp10_), gconf_entry_unref);
	g_object_set_data_full ((GObject*) action_widget, "gconf-schema", gconf_schema_copy (schema), gconf_schema_free);
	reset = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CLEAR));
	gtk_widget_set_tooltip_text ((GtkWidget*) reset, _ ("Reset to the default value"));
	g_object_set_data_full ((GObject*) reset, "gconf-entry", (_tmp11_ = entry, (_tmp11_ == NULL) ? NULL : gconf_entry_ref (_tmp11_), _tmp11_), gconf_entry_unref);
	g_object_set_data_full ((GObject*) reset, "gconf-schema", gconf_schema_copy (schema), gconf_schema_free);
	g_object_set_data_full ((GObject*) reset, "target", _g_object_ref0 (action_widget), g_object_unref);
	g_signal_connect_object (reset, "clicked", (GCallback) _gconf_dialog_onResetButtonPressed_gtk_button_clicked, self, 0);
	gtk_box_pack_start (row, render_widget, FALSE, FALSE, (guint) 2);
	gtk_box_pack_end (row, (GtkWidget*) reset, FALSE, FALSE, (guint) 2);
	result = (GtkWidget*) row;
	_g_object_unref0 (reset);
	_g_object_unref0 (render_widget);
	_g_object_unref0 (action_widget);
	_g_object_unref0 (label);
	_gconf_schema_free0 (schema);
	_gconf_entry_unref0 (entry);
	return result;
}