/** * hildon_app_menu_add_filter: * @menu : A #HildonAppMenu * @filter : A #GtkButton to add to the #HildonAppMenu. * * Adds the @filter to @menu. * * Since: 2.2 */ void hildon_app_menu_add_filter (HildonAppMenu *menu, GtkButton *filter) { HildonAppMenuPrivate *priv; g_return_if_fail (HILDON_IS_APP_MENU (menu)); g_return_if_fail (GTK_IS_BUTTON (filter)); priv = HILDON_APP_MENU_GET_PRIVATE(menu); /* Force widget size */ hildon_gtk_widget_set_theme_size (GTK_WIDGET (filter), HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH); /* Add the filter to the menu */ g_object_ref_sink (filter); priv->filters = g_list_append (priv->filters, filter); if (GTK_WIDGET_VISIBLE (filter)) hildon_app_menu_repack_filters (menu); /* Enable accelerators */ g_signal_connect (filter, "can-activate-accel", G_CALLBACK (can_activate_accel), NULL); /* Close the menu when the button is clicked */ g_signal_connect_swapped (filter, "clicked", G_CALLBACK (gtk_widget_hide), menu); g_signal_connect (filter, "notify::visible", G_CALLBACK (filter_visibility_changed), menu); /* Remove filter from list when it is destroyed */ g_object_weak_ref (G_OBJECT (filter), (GWeakNotify) remove_item_from_list, &(priv->filters)); g_object_weak_ref (G_OBJECT (filter), (GWeakNotify) emit_menu_changed, menu); g_signal_emit (menu, app_menu_signals[CHANGED], 0); }
static void he_check_button_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { HeCheckButton *button = HE_CHECK_BUTTON (object); switch (prop_id) { case PROP_TITLE: he_check_button_set_title (button, g_value_get_string (value)); break; case PROP_VALUE: he_check_button_set_value (button, g_value_get_string (value)); break; case PROP_SIZE: hildon_gtk_widget_set_theme_size (GTK_WIDGET (button), g_value_get_flags (value)); break; case PROP_ARRANGEMENT: he_check_button_set_arrangement (button, g_value_get_enum (value)); break; case PROP_STYLE: he_check_button_set_style (button, g_value_get_enum (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { HildonSizeType size; switch (prop_id) { case PROP_SIZE: size = g_value_get_flags (value); /* If this is auto height, default to finger height. */ if (!(size & (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_THUMB_HEIGHT))) size |= HILDON_SIZE_FINGER_HEIGHT; hildon_gtk_widget_set_theme_size (GTK_WIDGET (object), size); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }