]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkbuilderprivate.h
Fix includes
[~andy/gtk] / gtk / gtkbuilderprivate.h
index 1a65d48cc4475aaf87d92b28c3001ebd9894ecfa..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;
@@ -59,8 +59,10 @@ typedef struct {
 typedef struct {
   TagInfo tag;
   gchar *name;
+  GString *text;
   gchar *data;
   gboolean translatable;
+  gchar *context;
 } PropertyInfo;
 
 typedef struct {
@@ -72,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;
@@ -91,21 +100,64 @@ 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,
+                                   GSList     *signals);
 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__ */