]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkbuilderprivate.h
GtkEntry: Sanity check the end_pos value in _get_display_text()
[~andy/gtk] / gtk / gtkbuilderprivate.h
index e04911c65e0dba99467b0ea735001fe93b2c1654..3667ed52d0e06ca82af69dcff7650f983c37e711 100644 (file)
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __GTK_BUILDER_PRIVATE_H__
 #define __GTK_BUILDER_PRIVATE_H__
 
-#include <glib/gmarkup.h>
-#include <glib/gslist.h>
-
-#include <glib-object.h>
 #include "gtkbuilder.h"
 
 typedef struct {
@@ -46,6 +40,12 @@ typedef struct {
   CommonInfo *parent;
 } ObjectInfo;
 
+typedef struct {
+  TagInfo tag;
+  gchar *id;
+  GHashTable *objects;
+} MenuInfo;
+
 typedef struct {
   TagInfo tag;
   GSList *packing_properties;
@@ -74,6 +74,13 @@ typedef struct {
   gchar *connect_object_name;
 } SignalInfo;
 
+typedef struct {
+  TagInfo  tag;
+  gchar   *library;
+  gint     major;
+  gint     minor;
+} RequiresInfo;
+
 typedef struct {
   GMarkupParser *parser;
   gchar *tagname;
@@ -93,17 +100,30 @@ typedef struct {
   const gchar *filename;
   GSList *finalizers;
   GSList *custom_finalizers;
+
+  GSList *requested_objects; /* NULL if all the objects are requested */
+  gboolean inside_requested_object;
+  gint requested_object_level;
+  gint cur_object_level;
+
+  GHashTable *object_ids;
 } ParserData;
 
 typedef GType (*GTypeGetFunc) (void);
 
+/* Things only GtkBuilder should use */
 void _gtk_builder_parser_parse_buffer (GtkBuilder *builder,
                                        const gchar *filename,
                                        const gchar *buffer,
                                        gsize length,
+                                       gchar **requested_objs,
                                        GError **error);
 GObject * _gtk_builder_construct (GtkBuilder *builder,
-                                  ObjectInfo *info);
+                                  ObjectInfo *info,
+                                 GError    **error);
+void      _gtk_builder_add_object (GtkBuilder  *builder,
+                                   const gchar *id,
+                                   GObject     *object);
 void      _gtk_builder_add (GtkBuilder *builder,
                             ChildInfo *child_info);
 void      _gtk_builder_add_signals (GtkBuilder *builder,
@@ -111,12 +131,33 @@ void      _gtk_builder_add_signals (GtkBuilder *builder,
 void      _gtk_builder_finish (GtkBuilder *builder);
 void _free_signal_info (SignalInfo *info,
                         gpointer user_data);
+
+/* Internal API which might be made public at some point */
 gboolean _gtk_builder_boolean_from_string (const gchar  *string,
                                           gboolean     *value,
                                           GError      **error);
+gboolean _gtk_builder_enum_from_string (GType         type,
+                                        const gchar  *string,
+                                        gint         *enum_value,
+                                        GError      **error);
 gboolean  _gtk_builder_flags_from_string (GType       type,
                                          const char *string,
                                          guint      *value,
                                          GError    **error);
+gchar * _gtk_builder_parser_translate (const gchar *domain,
+                                      const gchar *context,
+                                      const gchar *text);
+gchar *   _gtk_builder_get_resource_path (GtkBuilder *builder,
+                                         const gchar *string);
+gchar *   _gtk_builder_get_absolute_filename (GtkBuilder *builder,
+                                             const gchar *string);
+
+void      _gtk_builder_menu_start (ParserData   *parser_data,
+                                   const gchar  *element_name,
+                                   const gchar **attribute_names,
+                                   const gchar **attribute_values,
+                                   GError      **error);
+void      _gtk_builder_menu_end   (ParserData  *parser_data);
+
 
 #endif /* __GTK_BUILDER_PRIVATE_H__ */