1 /* 2 * gtkappchooserbutton.h: an app-chooser combobox 3 * 4 * Copyright (C) 2010 Red Hat, Inc. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public License as 8 * published by the Free Software Foundation; either version 2 of the 9 * License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public 17 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 18 * 19 * Authors: Cosimo Cecchi <ccecchi@redhat.com> 20 */ 21 22 #ifndef __GTK_APP_CHOOSER_BUTTON_H__ 23 #define __GTK_APP_CHOOSER_BUTTON_H__ 24 25 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 26 #error "Only <gtk/gtk.h> can be included directly." 27 #endif 28 29 #include <gtk/gtkcombobox.h> 30 #include <gio/gio.h> 31 32 G_BEGIN_DECLS 33 34 #define GTK_TYPE_APP_CHOOSER_BUTTON (gtk_app_chooser_button_get_type ()) 35 #define GTK_APP_CHOOSER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_APP_CHOOSER_BUTTON, GtkAppChooserButton)) 36 #define GTK_APP_CHOOSER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_APP_CHOOSER_BUTTON, GtkAppChooserButtonClass)) 37 #define GTK_IS_APP_CHOOSER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_APP_CHOOSER_BUTTON)) 38 #define GTK_IS_APP_CHOOSER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_APP_CHOOSER_BUTTON)) 39 #define GTK_APP_CHOOSER_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_APP_CHOOSER_BUTTON, GtkAppChooserButtonClass)) 40 41 typedef struct _GtkAppChooserButton GtkAppChooserButton; 42 typedef struct _GtkAppChooserButtonClass GtkAppChooserButtonClass; 43 typedef struct _GtkAppChooserButtonPrivate GtkAppChooserButtonPrivate; 44 45 struct _GtkAppChooserButton { 46 GtkComboBox parent; 47 48 /*< private >*/ 49 GtkAppChooserButtonPrivate *priv; 50 }; 51 52 /** 53 * GtkAppChooserButtonClass: 54 * @parent_class: The parent class. 55 * @custom_item_activated: Signal emitted when a custom item, 56 * previously added with gtk_app_chooser_button_append_custom_item(), 57 * is activated from the dropdown menu. 58 */ 59 struct _GtkAppChooserButtonClass { 60 GtkComboBoxClass parent_class; 61 62 /*< public >*/ 63 64 void (* custom_item_activated) (GtkAppChooserButton *self, 65 const gchar *item_name); 66 67 /*< private >*/ 68 69 /* padding for future class expansion */ 70 gpointer padding[16]; 71 }; 72 73 GDK_AVAILABLE_IN_ALL 74 GType gtk_app_chooser_button_get_type (void) G_GNUC_CONST; 75 76 GDK_AVAILABLE_IN_ALL 77 GtkWidget * gtk_app_chooser_button_new (const gchar *content_type); 78 79 GDK_AVAILABLE_IN_ALL 80 void gtk_app_chooser_button_append_separator (GtkAppChooserButton *self); 81 GDK_AVAILABLE_IN_ALL 82 void gtk_app_chooser_button_append_custom_item (GtkAppChooserButton *self, 83 const gchar *name, 84 const gchar *label, 85 GIcon *icon); 86 GDK_AVAILABLE_IN_ALL 87 void gtk_app_chooser_button_set_active_custom_item (GtkAppChooserButton *self, 88 const gchar *name); 89 90 GDK_AVAILABLE_IN_ALL 91 void gtk_app_chooser_button_set_show_dialog_item (GtkAppChooserButton *self, 92 gboolean setting); 93 GDK_AVAILABLE_IN_ALL 94 gboolean gtk_app_chooser_button_get_show_dialog_item (GtkAppChooserButton *self); 95 GDK_AVAILABLE_IN_ALL 96 void gtk_app_chooser_button_set_heading (GtkAppChooserButton *self, 97 const gchar *heading); 98 GDK_AVAILABLE_IN_ALL 99 const gchar * 100 gtk_app_chooser_button_get_heading (GtkAppChooserButton *self); 101 GDK_AVAILABLE_IN_3_2 102 void gtk_app_chooser_button_set_show_default_item (GtkAppChooserButton *self, 103 gboolean setting); 104 GDK_AVAILABLE_IN_3_2 105 gboolean gtk_app_chooser_button_get_show_default_item (GtkAppChooserButton *self); 106 107 G_END_DECLS 108 109 #endif /* __GTK_APP_CHOOSER_BUTTON_H__ */ 110