1 /* GIMP - The GNU Image Manipulation Program 2 * Copyright (C) 1995 Spencer Kimball and Peter Mattis 3 * 4 * gimptagpopup.h 5 * Copyright (C) 2008 Aurimas Juška <aurisj@svn.gnome.org> 6 * 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * This program 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 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program. If not, see <https://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef __GIMP_TAG_POPUP_H__ 22 #define __GIMP_TAG_POPUP_H__ 23 24 25 #define GIMP_TYPE_TAG_POPUP (gimp_tag_popup_get_type ()) 26 #define GIMP_TAG_POPUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_TAG_POPUP, GimpTagPopup)) 27 #define GIMP_TAG_POPUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_TAG_POPUP, GimpTagPopupClass)) 28 #define GIMP_IS_TAG_POPUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_TAG_POPUP)) 29 #define GIMP_IS_TAG_POPUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_TAG_POPUP)) 30 #define GIMP_TAG_POPUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_TAG_POPUP, GimpTagPopupClass)) 31 32 33 typedef struct _GimpTagPopupClass GimpTagPopupClass; 34 35 typedef struct _PopupTagData PopupTagData; 36 37 struct _GimpTagPopup 38 { 39 GtkWindow parent_instance; 40 41 GimpComboTagEntry *combo_entry; 42 43 GtkWidget *frame; 44 GtkWidget *alignment; 45 GtkWidget *tag_area; 46 47 PangoContext *context; 48 PangoLayout *layout; 49 50 PopupTagData *tag_data; 51 gint tag_count; 52 53 PopupTagData *prelight; 54 55 gboolean single_select_disabled; 56 57 guint scroll_timeout_id; 58 gint scroll_height; 59 gint scroll_y; 60 gint scroll_step; 61 gint scroll_arrow_height; 62 gboolean scroll_fast; 63 gboolean arrows_visible; 64 gboolean upper_arrow_prelight; 65 gboolean lower_arrow_prelight; 66 GtkStateType upper_arrow_state; 67 GtkStateType lower_arrow_state; 68 }; 69 70 struct _GimpTagPopupClass 71 { 72 GtkWindowClass parent_class; 73 }; 74 75 76 GType gimp_tag_popup_get_type (void) G_GNUC_CONST; 77 78 GtkWidget * gimp_tag_popup_new (GimpComboTagEntry *entry); 79 80 void gimp_tag_popup_show (GimpTagPopup *popup); 81 82 83 #endif /* __GIMP_TAG_POPUP_H__ */ 84