No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

154 líneas
6.1 KiB

  1. /*
  2. * GTK - The GIMP Toolkit
  3. * Copyright (C) 1998, 1999 Red Hat, Inc.
  4. * All rights reserved.
  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 the Gnome Library; see the file COPYING.LIB. If not,
  18. * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  19. * Boston, MA 02111-1307, USA.
  20. */
  21. /*
  22. * Author: James Henstridge <james@daa.com.au>
  23. *
  24. * Modified by the GTK+ Team and others 2003. See the AUTHORS
  25. * file for a list of people on the GTK+ Team. See the ChangeLog
  26. * files for a list of changes. These files are distributed with
  27. * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  28. */
  29. #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
  30. #error "Only <gtk/gtk.h> can be included directly."
  31. #endif
  32. #ifndef __GTK_UI_MANAGER_H__
  33. #define __GTK_UI_MANAGER_H__
  34. #include <gtk/gtkaccelgroup.h>
  35. #include <gtk/gtkwidget.h>
  36. #include <gtk/gtkaction.h>
  37. #include <gtk/gtkactiongroup.h>
  38. G_BEGIN_DECLS
  39. #define GTK_TYPE_UI_MANAGER (gtk_ui_manager_get_type ())
  40. #define GTK_UI_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_UI_MANAGER, GtkUIManager))
  41. #define GTK_UI_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_UI_MANAGER, GtkUIManagerClass))
  42. #define GTK_IS_UI_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_UI_MANAGER))
  43. #define GTK_IS_UI_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_UI_MANAGER))
  44. #define GTK_UI_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_UI_MANAGER, GtkUIManagerClass))
  45. typedef struct _GtkUIManager GtkUIManager;
  46. typedef struct _GtkUIManagerClass GtkUIManagerClass;
  47. typedef struct _GtkUIManagerPrivate GtkUIManagerPrivate;
  48. struct _GtkUIManager {
  49. GObject parent;
  50. /*< private >*/
  51. GtkUIManagerPrivate *GSEAL (private_data);
  52. };
  53. struct _GtkUIManagerClass {
  54. GObjectClass parent_class;
  55. /* Signals */
  56. void (* add_widget) (GtkUIManager *merge,
  57. GtkWidget *widget);
  58. void (* actions_changed) (GtkUIManager *merge);
  59. void (* connect_proxy) (GtkUIManager *merge,
  60. GtkAction *action,
  61. GtkWidget *proxy);
  62. void (* disconnect_proxy) (GtkUIManager *merge,
  63. GtkAction *action,
  64. GtkWidget *proxy);
  65. void (* pre_activate) (GtkUIManager *merge,
  66. GtkAction *action);
  67. void (* post_activate) (GtkUIManager *merge,
  68. GtkAction *action);
  69. /* Virtual functions */
  70. GtkWidget * (* get_widget) (GtkUIManager *manager,
  71. const gchar *path);
  72. GtkAction * (* get_action) (GtkUIManager *manager,
  73. const gchar *path);
  74. /* Padding for future expansion */
  75. void (*_gtk_reserved1) (void);
  76. void (*_gtk_reserved2) (void);
  77. };
  78. typedef enum {
  79. GTK_UI_MANAGER_AUTO = 0,
  80. GTK_UI_MANAGER_MENUBAR = 1 << 0,
  81. GTK_UI_MANAGER_MENU = 1 << 1,
  82. GTK_UI_MANAGER_TOOLBAR = 1 << 2,
  83. GTK_UI_MANAGER_PLACEHOLDER = 1 << 3,
  84. GTK_UI_MANAGER_POPUP = 1 << 4,
  85. GTK_UI_MANAGER_MENUITEM = 1 << 5,
  86. GTK_UI_MANAGER_TOOLITEM = 1 << 6,
  87. GTK_UI_MANAGER_SEPARATOR = 1 << 7,
  88. GTK_UI_MANAGER_ACCELERATOR = 1 << 8,
  89. GTK_UI_MANAGER_POPUP_WITH_ACCELS = 1 << 9
  90. } GtkUIManagerItemType;
  91. #ifdef G_OS_WIN32
  92. /* Reserve old name for DLL ABI backward compatibility */
  93. #define gtk_ui_manager_add_ui_from_file gtk_ui_manager_add_ui_from_file_utf8
  94. #endif
  95. GType gtk_ui_manager_get_type (void) G_GNUC_CONST;
  96. GtkUIManager *gtk_ui_manager_new (void);
  97. void gtk_ui_manager_set_add_tearoffs (GtkUIManager *self,
  98. gboolean add_tearoffs);
  99. gboolean gtk_ui_manager_get_add_tearoffs (GtkUIManager *self);
  100. void gtk_ui_manager_insert_action_group (GtkUIManager *self,
  101. GtkActionGroup *action_group,
  102. gint pos);
  103. void gtk_ui_manager_remove_action_group (GtkUIManager *self,
  104. GtkActionGroup *action_group);
  105. GList *gtk_ui_manager_get_action_groups (GtkUIManager *self);
  106. GtkAccelGroup *gtk_ui_manager_get_accel_group (GtkUIManager *self);
  107. GtkWidget *gtk_ui_manager_get_widget (GtkUIManager *self,
  108. const gchar *path);
  109. GSList *gtk_ui_manager_get_toplevels (GtkUIManager *self,
  110. GtkUIManagerItemType types);
  111. GtkAction *gtk_ui_manager_get_action (GtkUIManager *self,
  112. const gchar *path);
  113. guint gtk_ui_manager_add_ui_from_string (GtkUIManager *self,
  114. const gchar *buffer,
  115. gssize length,
  116. GError **error);
  117. guint gtk_ui_manager_add_ui_from_file (GtkUIManager *self,
  118. const gchar *filename,
  119. GError **error);
  120. void gtk_ui_manager_add_ui (GtkUIManager *self,
  121. guint merge_id,
  122. const gchar *path,
  123. const gchar *name,
  124. const gchar *action,
  125. GtkUIManagerItemType type,
  126. gboolean top);
  127. void gtk_ui_manager_remove_ui (GtkUIManager *self,
  128. guint merge_id);
  129. gchar *gtk_ui_manager_get_ui (GtkUIManager *self);
  130. void gtk_ui_manager_ensure_update (GtkUIManager *self);
  131. guint gtk_ui_manager_new_merge_id (GtkUIManager *self);
  132. G_END_DECLS
  133. #endif /* __GTK_UI_MANAGER_H__ */