[Glade-devel] Glade: toplevel widget embedding



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




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]