static void rb_library_browser_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { RBLibraryBrowserPrivate *priv = RB_LIBRARY_BROWSER_GET_PRIVATE (object); switch (prop_id) { case PROP_DB: if (priv->db != NULL) { g_object_unref (priv->db); } priv->db = g_value_get_object (value); if (priv->db != NULL) { g_object_ref (priv->db); } break; case PROP_ENTRY_TYPE: priv->entry_type = g_value_get_object (value); break; case PROP_BROWSER_VIEWS: g_free (priv->browser_views); priv->browser_views = g_value_dup_string (value); update_browser_views_visibility (RB_LIBRARY_BROWSER (object)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void rb_library_browser_views_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, RBLibraryBrowser *widget) { update_browser_views_visibility (widget); }
static GObject * rb_library_browser_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { RBLibraryBrowserClass *klass; RBLibraryBrowser *browser; RBLibraryBrowserPrivate *priv; int i; klass = RB_LIBRARY_BROWSER_CLASS (g_type_class_peek (RB_TYPE_LIBRARY_BROWSER)); browser = RB_LIBRARY_BROWSER (G_OBJECT_CLASS (rb_library_browser_parent_class)-> constructor (type, n_construct_properties, construct_properties)); priv = RB_LIBRARY_BROWSER_GET_PRIVATE (browser); for (i = 0; i < num_browser_properties; i++) { RBPropertyView *view; view = rb_property_view_new (priv->db, browser_properties[i].type, _(browser_properties[i].name)); g_hash_table_insert (priv->property_views, (gpointer)(browser_properties[i].type), view); rb_property_view_set_selection_mode (view, GTK_SELECTION_MULTIPLE); g_signal_connect_object (G_OBJECT (view), "properties-selected", G_CALLBACK (view_property_selected_cb), browser, 0); g_signal_connect_object (G_OBJECT (view), "property-selection-reset", G_CALLBACK (view_selection_reset_cb), browser, 0); gtk_widget_show_all (GTK_WIDGET (view)); gtk_widget_set_no_show_all (GTK_WIDGET (view), TRUE); gtk_box_pack_start (GTK_BOX (browser), GTK_WIDGET (view), TRUE, TRUE, 0); } update_browser_views_visibility (browser); priv->browser_view_notify_id = eel_gconf_notification_add (CONF_UI_BROWSER_VIEWS, (GConfClientNotifyFunc) rb_library_browser_views_changed, browser); return G_OBJECT (browser); }
static void rb_library_browser_constructed (GObject *object) { RBLibraryBrowser *browser; RBLibraryBrowserPrivate *priv; int i; RB_CHAIN_GOBJECT_METHOD (rb_library_browser_parent_class, constructed, object); browser = RB_LIBRARY_BROWSER (object); priv = RB_LIBRARY_BROWSER_GET_PRIVATE (browser); for (i = 0; i < num_browser_properties; i++) { RBPropertyView *view; view = rb_property_view_new (priv->db, browser_properties[i].type, _(browser_properties[i].name)); g_hash_table_insert (priv->property_views, (gpointer)(browser_properties[i].type), view); rb_property_view_set_selection_mode (view, GTK_SELECTION_MULTIPLE); g_signal_connect_object (G_OBJECT (view), "properties-selected", G_CALLBACK (view_property_selected_cb), browser, 0); g_signal_connect_object (G_OBJECT (view), "property-selection-reset", G_CALLBACK (view_selection_reset_cb), browser, 0); gtk_widget_show_all (GTK_WIDGET (view)); gtk_widget_set_no_show_all (GTK_WIDGET (view), TRUE); gtk_box_pack_start (GTK_BOX (browser), GTK_WIDGET (view), TRUE, TRUE, 0); } update_browser_views_visibility (browser); priv->browser_view_notify_id = eel_gconf_notification_add (CONF_UI_BROWSER_VIEWS, (GConfClientNotifyFunc) rb_library_browser_views_changed, browser); }