Now that we are focusing on the ui and embedding stuff, we should discuss some new API for libgladeui. We need to think of how client programmers are going to manage the embedded toplevels (toplevels are GtkWindow's in a glade project). Unlike in glade 3.0, toplevels are not going to just pop-up magically on the screen anymore.
Toplevels (and non-toplevels) are embedded in a GladeDesignLayout (a GtkBin). Only one toplevel can be contained in the widget at a time. A toplevel can be removed and replaced with another one (usually done when a user selects another toplevel in the widget-tree). Example screenshot: [http://www.gnomejournal.org/images/181.png] This design is similar to Netbeans, MonoDevelop, and Gideon Designer, where only one toplevel in a project is visible in the workspace at a time. As such, it is different from Gazpacho and Kdesigner, where all toplevels are visible and floating in the workspace. So... I propose that we associate a new GladeDesignLayout for each project (where a project is just a .glade file). This way, IDE developers will be able to put each project's GladeDesignLayout into a new notebook tab. This design will ensure integration with the MDI user interface's of various IDE's (such as Anjuta or Eclipse). Regarding Anjuta, can it accommodate this design? API-wise, in the GladeProject class, we could have: GladeDesignLayout* glade_project_get_design_layout (GladeProject *project); Or, as the GladeProject class is getting a bit large and complex, maybe we should apply some OO magic and subclass/decorate it? Then we could have a new class, named say, GladeTab. I have taken this course of action in the current prototype, but I need to flesh the implementation out some more. cheers Vincent _______________________________________________ Glade-devel maillist - [email protected] http://lists.ximian.com/mailman/listinfo/glade-devel
