/app/widgets/gimptagentry.h

https://gitlab.com/marcelosabino/gimp · C Header · 86 lines · 40 code · 16 blank · 30 comment · 0 complexity · 776249d1abf4551ee42244906d3bec03 MD5 · raw file

  1. /* GIMP - The GNU Image Manipulation Program
  2. * Copyright (C) 1995 Spencer Kimball and Peter Mattis
  3. *
  4. * gimptagentry.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 <http://www.gnu.org/licenses/>.
  19. */
  20. #ifndef __GIMP_TAG_ENTRY_H__
  21. #define __GIMP_TAG_ENTRY_H__
  22. #define GIMP_TYPE_TAG_ENTRY (gimp_tag_entry_get_type ())
  23. #define GIMP_TAG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_TAG_ENTRY, GimpTagEntry))
  24. #define GIMP_TAG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_TAG_ENTRY, GimpTagEntryClass))
  25. #define GIMP_IS_TAG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_TAG_ENTRY))
  26. #define GIMP_IS_TAG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_TAG_ENTRY))
  27. #define GIMP_TAG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_TAG_ENTRY, GimpTagEntryClass))
  28. typedef struct _GimpTagEntryClass GimpTagEntryClass;
  29. struct _GimpTagEntry
  30. {
  31. GtkEntry parent_instance;
  32. GimpTaggedContainer *container;
  33. /* mask describes the meaning of each char in GimpTagEntry.
  34. * It is maintained automatically on insert-text and delete-text
  35. * events. If manual mask modification is desired, then
  36. * suppress_mask_update must be increased before calling any
  37. * function changing entry contents.
  38. * Meaning of mask chars:
  39. * u - undefined / unknown (just typed unparsed text)
  40. * t - tag
  41. * s - separator
  42. * w - whitespace.
  43. */
  44. GString *mask;
  45. GList *selected_items;
  46. GList *common_tags;
  47. GList *recent_list;
  48. gint tab_completion_index;
  49. gint internal_operation;
  50. gint suppress_mask_update;
  51. gint suppress_tag_query;
  52. GimpTagEntryMode mode;
  53. gboolean description_shown;
  54. gboolean has_invalid_tags;
  55. guint tag_query_idle_id;
  56. };
  57. struct _GimpTagEntryClass
  58. {
  59. GtkEntryClass parent_class;
  60. };
  61. GType gimp_tag_entry_get_type (void) G_GNUC_CONST;
  62. GtkWidget * gimp_tag_entry_new (GimpTaggedContainer *container,
  63. GimpTagEntryMode mode);
  64. void gimp_tag_entry_set_selected_items (GimpTagEntry *entry,
  65. GList *items);
  66. gchar ** gimp_tag_entry_parse_tags (GimpTagEntry *entry);
  67. void gimp_tag_entry_set_tag_string (GimpTagEntry *entry,
  68. const gchar *tag_string);
  69. const gchar * gimp_tag_entry_get_separator (void);
  70. #endif /* __GIMP_TAG_ENTRY_H__ */