summaryrefslogtreecommitdiff
path: root/gtk/gtkbuilderprivate.h
Commit message (Collapse)AuthorAgeFilesLines
* GtkBuilder: Export the template parsing entry pointMatthias Clasen2015-04-301-6/+6
| | | | This will let gtk-builder-tool validate templates.
* GtkBuilder: Report more lookup failures as GErrorMatthias Clasen2015-04-291-0/+6
| | | | | | | | Report failures to lookup objects for property values and bindings via GError too, and provide location information while doing so. https://bugzilla.gnome.org/show_bug.cgi?id=748234
* GtkBuilder: Add new convenience APIMatthias Clasen2015-04-271-0/+5
| | | | | | | | | | | Add a convenience function that is like gtk_builder_get_object() but stashes away a GError if a lookup fails. To make the error message informative, the function takes a line/column pair. Doing things this way is necessary because the custom_tag_end, custom_finished, and parser_finished vfuncs don't take a GError parameter, despite being called from a place where we can report a GError back.
* GtkBuilder: Introduce some private helpersMatthias Clasen2015-04-271-0/+13
| | | | | Add functions that help reporting errors from builder subparsers consistently.
* GtkBuilder: improved parsing error report for invalid properties and signals.Juan Pablo Ugarte2014-05-011-4/+5
| | | | | | | | | | | | | Added GTK_BUILDER_ERROR_INVALID_PROPERTY and GTK_BUILDER_ERROR_INVALID_SIGNAL error codes ObjectInfo: Use a GType instead of a char * for the class name. PropertyInfo: Use a GParamSpec instead of a char * for the property name. SignalInfo: Use signal id and detail quark instead of a detailed signal name string. This not only save us a few malloc in each case but lets us simplify the code and report unknown properties and signals as a parsing error instead of just printing a warning.
* Added bindings support to GtkBuilder by introducing 3 new <property> ↵Juan Pablo Ugarte2014-04-181-1/+12
| | | | | | | | | | | | | | attributes "bind-source" to specify the source object of the binding "bind-property" to specify the source property and "bind-flags" to specify the binding flags (optional) Binding an object sensitive property with a check button active property will look like this: <object class="GtkButton" id="button"> <property name="sensitive" bind-source="checkbutton" bind-property="active"/> </object> This is based on the original work done by Denis Washington for his GSoC project This closes Bug 654417 "[GSoC] Add <binding> element to GtkBuilder syntax"
* GtkBuilder: Make IDs optionalMatthias Clasen2013-11-181-0/+2
| | | | | | | | | | | | | | | | One requirement of .ui files is that each object must have an ID, even if it is never referred to or directly loaded from the code. This makes editing .ui files much more onerous than it has to be, due to the frequent need to invent new IDs, while avoiding clashes. This commit makes IDs optional in the XML. They only need to be provided for objects which are referred to or explictly loaded from the code. Since GtkBuilder needs IDs for its own internal accounting, we create IDs of the form ___object_N___ if not specified in the XML. https://bugzilla.gnome.org/show_bug.cgi?id=712553
* Fix a few memory leaks wrt to translationsMatthias Clasen2013-04-281-3/+3
| | | | | | | Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=699016 The fix here is slightly different. We make _gtk_builder_parser_translate return a const char * instead of a dup'ed string, and fix up the callers.
* GtkBuilder: Add private _gtk_builder_extend_with_template()Tristan Van Berkom2013-04-081-0/+11
| | | | | | | | | | | | This adds the definition of the <template> tag with some documentation on the variant of the format. _gtk_builder_extend_with_template() is to be used while GtkContainer builds from composite templates. A couple of error codes are also added to handle a few new possible failure cases. DTD Files gtkbuilder.rnc and gtkbuilder.rng have been updated to include the new <template> tag and it's attributes.
* Change FSF AddressJavier Jardón2012-02-271-3/+1
|
* GtkBuilder: change format of menusRyan Lortie2012-01-251-0/+8
| | | | | | | | | | | | | | Change the format of GtkBuilder <menu> to be more in-line with the style of the rest of GtkBuilder so that we can do translation in a consistent way. The format is now substantially more difficult to hand-write, but tools should be along soon. There is an xslt program attached to the bug to help you convert your existing .ui files from the old format to the new one. https://bugzilla.gnome.org/show_bug.cgi?id=668696
* Add resource support for GtkBuilderAlexander Larsson2012-01-161-0/+2
| | | | | | There are new calls to load ui files from resources, and you can now read pixbufs by using relative paths in a ui file read from a resource, or by using absolute resource:/// uris.
* Forgotten fileMatthias Clasen2011-12-191-0/+6
|
* Quick-and-dirty GtkBuilder integrationMatthias Clasen2011-12-191-0/+3
| | | | | | This makes GtkBuilder accept a GMenuMarkup tree at the toplevel (ie with <menu id='foo'> being a child of <interface>) and the resulting GMenu object can be obtained via gtk_builder_get_object (builder, "foo").
* Improve GtkBuilder error reportingMatthias Clasen2009-04-061-0/+2
| | | | | Make GtkBuilder report an error when it encounters a duplicate id, instead of segfaulting later on
* Bug 447998 - GtkBuilder does not support building parts of the xml treePaolo Borelli2008-07-161-0/+6
| | | | | | | | | | | | | | | | | | | 2008-07-15 Paolo Borelli <pborelli@katamail.com> Bug 447998 - GtkBuilder does not support building parts of the xml tree * gtk/gtkbuilder.c: * gtk/gtkbuilder.h: * gtk/gtkbuilderprivate.h: * gtk/gtkbuilderparser.c: * gtk/gtk.symbols: Add two new functions that allow cherry picking and construct objects from a ui description file or string. * gtk/tests/builder.c: tests for the above. svn path=/trunk/; revision=20845
* gtk/gtkaction.h gtk/gtkbuildable.h gtk/gtkbuilderprivate.hMichael Natterer2008-06-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-06-23 Michael Natterer <mitch@imendio.com> * gtk/gtkaction.h * gtk/gtkbuildable.h * gtk/gtkbuilderprivate.h * gtk/gtkcelllayout.h * gtk/gtkentrycompletion.h * gtk/gtkfilechoosersettings.h * gtk/gtkfilesystem.h * gtk/gtkfilesystemmodel.h * gtk/gtkicontheme.h * gtk/gtklinkbutton.h * gtk/gtkpagesetup.h * gtk/gtkpapersize.h * gtk/gtkprintcontext.h * gtk/gtkprintoperation.h * gtk/gtkprintoperationpreview.h * gtk/gtkprintsettings.h * gtk/gtkrecentchooserprivate.h * gtk/gtkrecentmanager.h * gtk/gtksearchengine.h * gtk/gtktexttag.h * gtk/gtktreeselection.h * gtk/gtktreeviewcolumn.h * gtk/gtkuimanager.h: remove redundant inclusion of <glib.h> and <glib-object.h>. There is no point in relying on them being pulled in by other headers in some places and placing them explicitly in other places, so choose the "as little includes as possible" approach and get rid of them. svn path=/trunk/; revision=20675
* Added support for parsing required toolkit versions (so that uiTristan Van Berkom2008-05-251-0/+7
| | | | | | | | | | | | * gtk/gtkbuilderprivate.h, gtk/gtkbuilder.h, gtk/gtkbuilderparser.c: Added support for parsing required toolkit versions (so that ui descriptions can target specific versions of the backend widget libraries) bug 527612. * gtk/docs/reference/gtk/tmpl/gtkbuilder.sgml: Added documentation for the added xml tags to the ui description. svn path=/trunk/; revision=20152
* gdk/gdkspawn.h gtk/gtkbuilderprivate.h gtk/gtkfilechoosersettings.cMichael Natterer2008-03-141-3/+0
| | | | | | | | | | | | | | | 2008-03-14 Michael Natterer <mitch@imendio.com> * gdk/gdkspawn.h * gtk/gtkbuilderprivate.h * gtk/gtkfilechoosersettings.c * gtk/gtksearchenginesimple.c * gtk/tests/liststore.c * gtk/tests/treestore.c: remove single-file includes of GLib headers or replace them by <glib.h> where needed. svn path=/trunk/; revision=19877
* - Treat enums like enums and not values - Avoid invalid free, in case ofJohan Dahlin2008-03-071-0/+4
| | | | | | | | | | | | | | | | | | 2008-03-07 Johan Dahlin <johan@gnome.org> * gtk/gtkbuilder.c: * gtk/gtkbuilderparser.c: * gtk/gtkbuilderprivate.h: * gtk/gtkiconfactory.c: * tests/buildertest.c: - Treat enums like enums and not values - Avoid invalid free, in case of more than two sources - Add better error messages - Add much improved tests (#520979, Christian Persch) svn path=/trunk/; revision=19732
* Implement GtkBuildable on GtkIconFactory, to make it possible to registerJohan Dahlin2008-03-071-0/+2
| | | | | | | | | | | | | | | | 2008-03-06 Johan Dahlin <jdahlin@async.com.br> * docs/reference/gtk/tmpl/gtkiconfactory.sgml: * gtk/gtkbuilder.c: * gtk/gtkbuilderprivate.h: * gtk/gtkiconfactory.c: * tests/buildertest.c: Implement GtkBuildable on GtkIconFactory, to make it possible to register custom stock icons. Fixes #517066 svn path=/trunk/; revision=19726
* Add translatable/context and comment attributes on <col> tags under aJohan Dahlin2008-03-021-0/+6
| | | | | | | | | | | | | | | | | | 2008-02-29 Johan Dahlin <johan@gnome.org> * demos/gtk-demo/demo.ui: * gtk/gtkbuilderparser.c: * gtk/gtkbuilderprivate.h: * gtk/gtkliststore.c: * tests/buildertest.c: Add translatable/context and comment attributes on <col> tags under a GtkListStore. Refactor parts of the translation api and make it available inside gtk+ itself. Update tests and example. Fixes a part of #518642 svn path=/trunk/; revision=19685
* Do not use g_error for a few more errors, instead set the GError sent inJohan Dahlin2008-03-011-1/+2
| | | | | | | | | | | | | | | | 2008-02-29 Johan Dahlin <johan@gnome.org> * gtk/gtkbuilder.c: * gtk/gtkbuilderparser.c: * gtk/gtkbuilderprivate.h: Do not use g_error for a few more errors, instead set the GError sent in through add_from_file/add_from_string. * tests/buildertest.c: Add a couple of new parsing tests. (#519199, Pavel Syomin) svn path=/trunk/; revision=19681
* Avoid some compiler warnings (#507000).Mathias Hasselmann2008-01-051-1/+1
| | | | | | | | | * gtk/gtkbuilder.c, gtk/gtkbuilderprivate.h: Use proper sign for value argument of _gtk_builder_flags_from_string. * gtk/gtkwidget.c: Don't alias the child pointer passed to gdk_window_get_user_data. svn path=/trunk/; revision=19306
* Forgotten fileMatthias Clasen2007-11-081-0/+1
| | | | svn path=/trunk/; revision=18971
* Parse signals after <child> tags and add tests. (#468793, Benjamin Otte)Johan Dahlin2007-10-241-0/+2
| | | | | | | | | | | | | | | | 2007-10-24 Johan Dahlin <jdahlin@async.com.br> * gtk/gtkbuilder.c: (_gtk_builder_construct), (_gtk_builder_add_signals): * gtk/gtkbuilderparser.c: (end_element): * gtk/gtkbuilderprivate.h: * tests/buildertest.c: (test_connect_signals): Parse signals after <child> tags and add tests. (#468793, Benjamin Otte) svn path=/trunk/; revision=18944
* Add support for context and comments on propertiesMatthias Clasen2007-07-081-0/+1
| | | | svn path=/trunk/; revision=18401
* Improve error handling for enum/flags, rename the converter functions toJohan Dahlin2007-06-301-3/+7
| | | | | | | | | | | | | | | | | 2007-06-30 Johan Dahlin <jdahlin@async.com.br> * gtk/gtkbuilder.c: * gtk/gtkbuilder.h: * gtk/gtkbuilderparser.c: * gtk/gtkbuilderprivate.h: * gtk/gtkwidget.c: * tests/buildertest.c: Improve error handling for enum/flags, rename the converter functions to be consistent. Add tests. Fixes #452465 svn path=/trunk/; revision=18312
* Make boolean string parsing consistent, #452464Johan Dahlin2007-06-301-0/+3
| | | | | | | | | | | | | | 2007-06-30 Johan Dahlin <jdahlin@async.com.br> * gtk/gtkbuilder.c: (gtk_builder_value_from_string_type): * gtk/gtkbuilderparser.c: (_gtk_builder_parse_boolean), (parse_property), (parse_signal): * gtk/gtkbuilderprivate.h: * tests/buildertest.c: (test_value_from_string): Make boolean string parsing consistent, #452464 svn path=/trunk/; revision=18305
* Add GtkBuilder, fixes #172535Johan Dahlin2007-06-151-0/+111
2007-06-15 Johan Dahlin <jdahlin@async.com.br> * demos/gtk-demo/Makefile.am: * demos/gtk-demo/builder.c: (quit_activate), (about_activate), (do_builder): * demos/gtk-demo/demo.ui: * docs/reference/gtk/gtk-docs.sgml: * docs/reference/gtk/gtk-sections.txt: * docs/reference/gtk/gtk.types: * docs/reference/gtk/tmpl/gtkbuildable.sgml: * docs/reference/gtk/tmpl/gtkbuilder.sgml: * gtk/Makefile.am: * gtk/gtk.h: * gtk/gtk.symbols: * gtk/gtkaction.c: (gtk_action_buildable_init), (gtk_action_buildable_set_name), (gtk_action_buildable_get_name): * gtk/gtkactiongroup.c: (gtk_action_group_get_type), (gtk_action_group_buildable_init), (gtk_action_group_buildable_add), (gtk_action_group_buildable_set_name), (gtk_action_group_buildable_get_name): * gtk/gtkbuildable.c: (gtk_buildable_get_type), (gtk_buildable_set_name), (gtk_buildable_get_name), (gtk_buildable_add), (gtk_buildable_set_property), (gtk_buildable_parser_finished), (gtk_buildable_construct_child), (gtk_buildable_custom_tag_start), (gtk_buildable_custom_tag_end), (gtk_buildable_custom_finished), (gtk_buildable_get_internal_child): * gtk/gtkbuildable.h: * gtk/gtkbuilder.c: (gtk_builder_class_init), (gtk_builder_init), (gtk_builder_finalize), (gtk_builder_set_property), (gtk_builder_get_property), (_gtk_builder_resolve_type_lazily), (gtk_builder_real_get_type_from_name), (gtk_builder_get_parameters), (gtk_builder_get_internal_child), (_gtk_builder_construct), (_gtk_builder_add), (apply_delayed_properties), (_gtk_builder_finish), (gtk_builder_new), (gtk_builder_add_from_file), (gtk_builder_add_from_string), (gtk_builder_get_object), (object_add_to_list), (gtk_builder_get_objects), (gtk_builder_set_translation_domain), (gtk_builder_get_translation_domain), (gtk_builder_connect_signals_default), (gtk_builder_connect_signals), (gtk_builder_connect_signals_full), (gtk_builder_value_from_string), (gtk_builder_value_from_string_type), (_gtk_builder_enum_from_string), (_gtk_builder_flags_from_string), (gtk_builder_get_type_from_name), (gtk_builder_error_quark): * gtk/gtkbuilder.h: * gtk/gtkbuilderparser.c: (state_push), (state_peek), (state_pop), (error_missing_attribute), (error_invalid_attribute), (error_invalid_tag), (builder_construct), (parse_object), (free_object_info), (_get_type_by_symbol), (parse_child), (free_child_info), (parse_property), (free_property_info), (parse_signal), (_free_signal_info), (parse_interface), (create_subparser), (free_subparser), (subparser_start), (subparser_end), (parse_custom), (start_element), (end_element), (text), (_gtk_builder_parser_parse_buffer): * gtk/gtkbuilderprivate.h: * gtk/gtkcelllayout.c: (attributes_start_element), (attributes_text_element), (_gtk_cell_layout_buildable_custom_tag_start), (_gtk_cell_layout_buildable_custom_tag_end), (_gtk_cell_layout_buildable_add): * gtk/gtkcelllayout.h: * gtk/gtkcellview.c: (gtk_cell_view_buildable_init), (gtk_cell_view_buildable_custom_tag_start), (gtk_cell_view_buildable_custom_tag_end): * gtk/gtkcolorseldialog.c: (gtk_color_selection_dialog_buildable_interface_init), (gtk_color_selection_dialog_buildable_get_internal_child): * gtk/gtkcombobox.c: (gtk_combo_box_buildable_init), (gtk_combo_box_buildable_custom_tag_start), (gtk_combo_box_buildable_custom_tag_end): * gtk/gtkcomboboxentry.c: (gtk_combo_box_entry_buildable_interface_init), (gtk_combo_box_entry_buildable_get_internal_child): * gtk/gtkcontainer.c: (gtk_container_get_type), (gtk_container_buildable_init), (gtk_container_buildable_add), (gtk_container_buildable_set_child_property), (attributes_start_element), (attributes_text_element), (gtk_container_buildable_custom_tag_start), (gtk_container_buildable_custom_tag_end): * gtk/gtkdebug.h: * gtk/gtkdialog.c: (gtk_dialog_buildable_interface_init), (gtk_dialog_buildable_get_internal_child), (attributes_start_element), (attributes_text_element), (gtk_dialog_buildable_custom_tag_start), (gtk_dialog_buildable_custom_finished): * gtk/gtkentrycompletion.c: (gtk_entry_completion_buildable_init): * gtk/gtkexpander.c: (gtk_expander_buildable_add), (gtk_expander_buildable_init): * gtk/gtkfontsel.c: (gtk_font_selection_dialog_buildable_interface_init), (gtk_font_selection_dialog_buildable_get_internal_child): * gtk/gtkframe.c: (gtk_frame_buildable_init), (gtk_frame_buildable_add): * gtk/gtkiconview.c: (gtk_icon_view_buildable_init), (gtk_icon_view_buildable_custom_tag_start), (gtk_icon_view_buildable_custom_tag_end): * gtk/gtkliststore.c: (gtk_list_store_buildable_init), (list_store_start_element), (list_store_end_element), (list_store_text), (gtk_list_store_buildable_custom_tag_start), (gtk_list_store_buildable_custom_tag_end): * gtk/gtkmain.c: * gtk/gtknotebook.c: (gtk_notebook_buildable_init), (gtk_notebook_buildable_add): * gtk/gtksizegroup.c: (gtk_size_group_buildable_init), (size_group_start_element), (gtk_size_group_buildable_custom_tag_start), (gtk_size_group_buildable_custom_finished): * gtk/gtktreestore.c: (gtk_tree_store_buildable_init), (tree_model_start_element), (gtk_tree_store_buildable_custom_tag_start), (gtk_tree_store_buildable_custom_finished): * gtk/gtktreeview.c: (gtk_tree_view_buildable_init), (gtk_tree_view_buildable_add): * gtk/gtktreeviewcolumn.c: (gtk_tree_view_column_buildable_init): * gtk/gtkuimanager.c: (gtk_ui_manager_buildable_init), (gtk_ui_manager_buildable_add), (gtk_ui_manager_buildable_construct_child), (gtk_ui_manager_buildable_custom_tag_start), (gtk_ui_manager_buildable_custom_tag_end): * gtk/gtkwidget.c: (gtk_widget_get_type), (gtk_widget_buildable_interface_init), (gtk_widget_buildable_set_name), (gtk_widget_buildable_get_name), (gtk_widget_buildable_set_property), (gtk_widget_buildable_parser_finshed), (accel_group_start_element), (gtk_widget_buildable_custom_tag_start), (gtk_widget_buildable_custom_finshed): * gtk/gtkwindow.c: (gtk_window_buildable_interface_init), (gtk_window_buildable_set_property), (gtk_window_buildable_parser_finished): * tests/Makefile.am: * tests/buildertest.c: (builder_new_from_string), (test_parser), (signal_normal), (signal_after), (signal_object), (signal_object_after), (signal_first), (signal_second), (signal_extra), (signal_extra2), (test_connect_signals), (test_uimanager_simple), (test_domain), (test_translation), (test_sizegroup), (test_list_store), (test_tree_store), (test_types), (test_spin_button), (test_notebook), (test_construct_only_property), (test_children), (test_child_properties), (test_treeview_column), (test_icon_view), (test_combo_box), (test_combo_box_entry), (test_cell_view), (test_dialog), (test_accelerators), (test_widget), (main): Add GtkBuilder, fixes #172535 svn path=/trunk/; revision=18141