1 /* 2 * gtkappchooserwidget.h: an app-chooser widget 3 * 4 * Copyright (C) 2004 Novell, Inc. 5 * Copyright (C) 2007, 2010 Red Hat, Inc. 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Library General Public License as 9 * published by the Free Software Foundation; either version 2 of the 10 * License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Library General Public License for more details. 16 * 17 * You should have received a copy of the GNU Library General Public 18 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 19 * 20 * Authors: Dave Camp <dave@novell.com> 21 * Alexander Larsson <alexl@redhat.com> 22 * Cosimo Cecchi <ccecchi@redhat.com> 23 */ 24 25 #ifndef __GTK_APP_CHOOSER_WIDGET_H__ 26 #define __GTK_APP_CHOOSER_WIDGET_H__ 27 28 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 29 #error "Only <gtk/gtk.h> can be included directly." 30 #endif 31 32 #include <gtk/gtkbox.h> 33 #include <gtk/gtkmenu.h> 34 #include <gio/gio.h> 35 36 G_BEGIN_DECLS 37 38 #define GTK_TYPE_APP_CHOOSER_WIDGET (gtk_app_chooser_widget_get_type ()) 39 #define GTK_APP_CHOOSER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_APP_CHOOSER_WIDGET, GtkAppChooserWidget)) 40 #define GTK_APP_CHOOSER_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_APP_CHOOSER_WIDGET, GtkAppChooserWidgetClass)) 41 #define GTK_IS_APP_CHOOSER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_APP_CHOOSER_WIDGET)) 42 #define GTK_IS_APP_CHOOSER_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_APP_CHOOSER_WIDGET)) 43 #define GTK_APP_CHOOSER_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_APP_CHOOSER_WIDGET, GtkAppChooserWidgetClass)) 44 45 typedef struct _GtkAppChooserWidget GtkAppChooserWidget; 46 typedef struct _GtkAppChooserWidgetClass GtkAppChooserWidgetClass; 47 typedef struct _GtkAppChooserWidgetPrivate GtkAppChooserWidgetPrivate; 48 49 struct _GtkAppChooserWidget { 50 GtkBox parent; 51 52 /*< private >*/ 53 GtkAppChooserWidgetPrivate *priv; 54 }; 55 56 /** 57 * GtkAppChooserWidgetClass: 58 * @parent_class: The parent class. 59 * @application_selected: Signal emitted when an application item is 60 * selected from the widget’s list. 61 * @application_activated: Signal emitted when an application item is 62 * activated from the widget’s list. 63 * @populate_popup: Signal emitted when a context menu is about to 64 * popup over an application item. 65 */ 66 struct _GtkAppChooserWidgetClass { 67 GtkBoxClass parent_class; 68 69 /*< public >*/ 70 71 void (* application_selected) (GtkAppChooserWidget *self, 72 GAppInfo *app_info); 73 74 void (* application_activated) (GtkAppChooserWidget *self, 75 GAppInfo *app_info); 76 77 void (* populate_popup) (GtkAppChooserWidget *self, 78 GtkMenu *menu, 79 GAppInfo *app_info); 80 81 /*< private >*/ 82 83 /* padding for future class expansion */ 84 gpointer padding[16]; 85 }; 86 87 GDK_AVAILABLE_IN_ALL 88 GType gtk_app_chooser_widget_get_type (void) G_GNUC_CONST; 89 90 GDK_AVAILABLE_IN_ALL 91 GtkWidget * gtk_app_chooser_widget_new (const gchar *content_type); 92 93 GDK_AVAILABLE_IN_ALL 94 void gtk_app_chooser_widget_set_show_default (GtkAppChooserWidget *self, 95 gboolean setting); 96 GDK_AVAILABLE_IN_ALL 97 gboolean gtk_app_chooser_widget_get_show_default (GtkAppChooserWidget *self); 98 99 GDK_AVAILABLE_IN_ALL 100 void gtk_app_chooser_widget_set_show_recommended (GtkAppChooserWidget *self, 101 gboolean setting); 102 GDK_AVAILABLE_IN_ALL 103 gboolean gtk_app_chooser_widget_get_show_recommended (GtkAppChooserWidget *self); 104 105 GDK_AVAILABLE_IN_ALL 106 void gtk_app_chooser_widget_set_show_fallback (GtkAppChooserWidget *self, 107 gboolean setting); 108 GDK_AVAILABLE_IN_ALL 109 gboolean gtk_app_chooser_widget_get_show_fallback (GtkAppChooserWidget *self); 110 111 GDK_AVAILABLE_IN_ALL 112 void gtk_app_chooser_widget_set_show_other (GtkAppChooserWidget *self, 113 gboolean setting); 114 GDK_AVAILABLE_IN_ALL 115 gboolean gtk_app_chooser_widget_get_show_other (GtkAppChooserWidget *self); 116 117 GDK_AVAILABLE_IN_ALL 118 void gtk_app_chooser_widget_set_show_all (GtkAppChooserWidget *self, 119 gboolean setting); 120 GDK_AVAILABLE_IN_ALL 121 gboolean gtk_app_chooser_widget_get_show_all (GtkAppChooserWidget *self); 122 123 GDK_AVAILABLE_IN_ALL 124 void gtk_app_chooser_widget_set_default_text (GtkAppChooserWidget *self, 125 const gchar *text); 126 GDK_AVAILABLE_IN_ALL 127 const gchar * gtk_app_chooser_widget_get_default_text (GtkAppChooserWidget *self); 128 129 G_END_DECLS 130 131 #endif /* __GTK_APP_CHOOSER_WIDGET_H__ */ 132