X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkappchooserwidget.c;h=ea4ac44a6374c40103c820ac155e34fe4326a629;hb=9d0febc9a64a5bfb0fcfc3a88de4757f6c1ff090;hp=2251971ddda3f145e0631be141e95579ed1d776f;hpb=c7514e8f0d19a833257497caff413bb4dfae6eb4;p=~andy%2Fgtk diff --git a/gtk/gtkappchooserwidget.c b/gtk/gtkappchooserwidget.c index 2251971dd..ea4ac44a6 100644 --- a/gtk/gtkappchooserwidget.c +++ b/gtk/gtkappchooserwidget.c @@ -15,9 +15,7 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . * * Authors: Dave Camp * Alexander Larsson @@ -54,6 +52,19 @@ * It is the main building block for #GtkAppChooserDialog. Most * applications only need to use the latter; but you can use * this widget as part of a larger widget if you have special needs. + * + * #GtkAppChooserWidget offers detailed control over what applications + * are shown, using the + * #GtkAppChooserWidget:show-default, + * #GtkAppChooserWidget:show-recommended, + * #GtkAppChooserWidget:show-fallback, + * #GtkAppChooserWidget:show-other and + * #GtkAppChooserWidget:show-all + * properties. See the #GtkAppChooser documentation for more information + * about these groups of applications. + * + * To keep track of the selected application, use the + * #GtkAppChooserWidget::application-selected and #GtkAppChooserWidget::application-activated signals. */ struct _GtkAppChooserWidgetPrivate { @@ -61,11 +72,12 @@ struct _GtkAppChooserWidgetPrivate { gchar *content_type; gchar *default_text; - gboolean show_default; - gboolean show_recommended; - gboolean show_fallback; - gboolean show_other; - gboolean show_all; + + guint show_default : 1; + guint show_recommended : 1; + guint show_fallback : 1; + guint show_other : 1; + guint show_all : 1; GtkWidget *program_list; GtkListStore *program_list_store; @@ -194,7 +206,7 @@ widget_button_press_event_cb (GtkWidget *widget, { GtkAppChooserWidget *self = user_data; - if (event->button == 3 && event->type == GDK_BUTTON_PRESS) + if (event->button == GDK_BUTTON_SECONDARY && event->type == GDK_BUTTON_PRESS) { GAppInfo *info; GtkWidget *menu; @@ -979,11 +991,7 @@ gtk_app_chooser_widget_dispose (GObject *object) { GtkAppChooserWidget *self = GTK_APP_CHOOSER_WIDGET (object); - if (self->priv->selected_app_info != NULL) - { - g_object_unref (self->priv->selected_app_info); - self->priv->selected_app_info = NULL; - } + g_clear_object (&self->priv->selected_app_info); G_OBJECT_CLASS (gtk_app_chooser_widget_parent_class)->dispose (object); } @@ -1021,9 +1029,10 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) /** * GtkAppChooserWidget:show-recommended: * - * The #GtkAppChooserWidget:show-recommended property determines whether the app chooser - * should show a section for recommended applications. If %FALSE, the - * recommended applications are listed among the other applications. + * The #GtkAppChooserWidget:show-recommended property determines + * whether the app chooser should show a section for recommended + * applications. If %FALSE, the recommended applications are listed + * among the other applications. */ pspec = g_param_spec_boolean ("show-recommended", P_("Show recommended apps"), @@ -1035,9 +1044,10 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) /** * GtkAppChooserWidget:show-fallback: * - * The #GtkAppChooserWidget:show-fallback property determines whether the app chooser - * should show a section for related applications. If %FALSE, the - * related applications are listed among the other applications. + * The #GtkAppChooserWidget:show-fallback property determines whether + * the app chooser should show a section for fallback applications. + * If %FALSE, the fallback applications are listed among the other + * applications. */ pspec = g_param_spec_boolean ("show-fallback", P_("Show fallback apps"), @@ -1049,8 +1059,8 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) /** * GtkAppChooserWidget:show-other: * - * The #GtkAppChooserWidget:show-other property determines whether the app chooser - * should show a section for other applications. + * The #GtkAppChooserWidget:show-other property determines whether + * the app chooser should show a section for other applications. */ pspec = g_param_spec_boolean ("show-other", P_("Show other apps"), @@ -1062,9 +1072,9 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) /** * GtkAppChooserWidget:show-all: * - * If the #GtkAppChooserWidget:show-all property is %TRUE, the app chooser presents - * all applications in a single list, without subsections for - * default, recommended or related applications. + * If the #GtkAppChooserWidget:show-all property is %TRUE, the app + * chooser presents all applications in a single list, without + * subsections for default, recommended or related applications. */ pspec = g_param_spec_boolean ("show-all", P_("Show all apps"), @@ -1076,8 +1086,9 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) /** * GtkAppChooserWidget:default-text: * - * The #GtkAppChooserWidget:default-text property determines the text that appears - * in the widget when there are no applications for the given content type. + * The #GtkAppChooserWidget:default-text property determines the text + * that appears in the widget when there are no applications for the + * given content type. * See also gtk_app_chooser_widget_set_default_text(). */ pspec = g_param_spec_string ("default-text", @@ -1110,6 +1121,7 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) * @application: the activated #GAppInfo * * Emitted when an application item is activated from the widget's list. + * * This usually happens when the user double clicks an item, or an item * is selected and the user presses one of the keys Space, Shift+Space, * Return or Enter. @@ -1132,8 +1144,8 @@ gtk_app_chooser_widget_class_init (GtkAppChooserWidgetClass *klass) * * Emitted when a context menu is about to popup over an application item. * Clients can insert menu items into the provided #GtkMenu object in the - * callback of this signal; the context menu will be shown over the item if - * at least one item has been added to the menu. + * callback of this signal; the context menu will be shown over the item + * if at least one item has been added to the menu. */ signals[SIGNAL_POPULATE_POPUP] = g_signal_new ("populate-popup", @@ -1175,7 +1187,7 @@ gtk_app_chooser_widget_init (GtkAppChooserWidget *self) gtk_widget_show (self->priv->program_list); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->priv->program_list)); - gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); gtk_tree_selection_set_select_function (selection, gtk_app_chooser_selection_func, self, NULL); g_signal_connect_swapped (selection, "changed",