Split Project data model from view model: ======================================== Currently we create a GladeWidget object for each project object but GladeProject and gladeui api in general uses the very same runtime object. Ideally we should only depend on GladeWidget and the actual runtime object should only be used for the view in the workspace. A first step could be updating GladeProject to only use GladeWidget internally and then we can update gladeui api to use GladeWidget instead but this means a API/ABI break GtkBuilder unsuported features: ============================== * No ID objects: GtkBuilder now support objects without an id. * Property bindings Unsupported object classes: ========================== Glib * GMenu/GMenuModel ( GtkBuilder element) Because GMenu is in Glib library it can not implement GtkBuildable iface which is in GTK+ this lead to implementing GMenu object construction in GtkBuilder using a custom element Ideally we should move GtkBuilder and GtkBuildable to Glib and rename them GBuilder and GBuildable so that we can implemet GBuildable in GMenu object A way to avoid this would be to create a new object type in GTK that derives from GMenu say GtkMenuObject (GtkMenu is already taken ;) and make it implement GtkBuildable iface. * GAction, GSimpleAction, GActionGroup GTK+ 3.4 * GtkApplication (add buildable iface to support GMenuModel?¿) GTK+ 3.14 * type="action" children in GtkDialog GTK+ 3.16 * GtkGLArea GTK+ 3.20 * GtkShortcutsWindow * GtkFileChooserNative