Hi all,

I've just checked in all the work I've been doing on adding functionality to
Tree in the "namespaces" branch.  The new namespace qx.ui.treefullcontrol has
the new functionality, leaving qx.ui.tree in its former pristine state.  This
will allow comparisons between the old and the new, and let any bugs that
still exist in the "full control" tree get worked out. 

There were a few bug fixes in other areas of the code that got checked in as
well.  My check-in retained the full commit log I had been tracking in SVK (a
front-end to SVN which allows maintaining a local mirror of a repository and
syncing them).  For those of you tracking the commit logs, you'll see some
large (hopefully very descriptive) entries.

I've done a bunch of testing of this merge and I don't believe that this large
commit has broken anything.  Please let me know if I have, though, and I'll
get it fixed ASAP!

For those interested in more details of the "full control" available, this
comment from qx.ui.treefullcontrol.TreeRowStructure should make it a bit
clearer, and then see the TreeFullControl_{2,3}.html examples for more info.

/**
 * @brief
 * The structure of a tree row.
 *
 * The structure of a tree row is provided by a
 * qx.ui.treefullcontrol.TreeRowStructure.  The order of elements added to
 * this object is the order in which they will be presented in a tree row.
 *
 * The three standard parts of a tree: the indentation (and its associated
 * tree-lines, if enabled), the icon (selected or unselected), and the label
 * are added to the structure in the desired order by calling, respectively,
 * the methods addIndent(), addIcon() and addLabel().
 *
 * By default, indentation will appear at the beginning of the tree row.  This
 * can be changed by calling the addIndent() method after having calling other
 * add*() methods on this object.  If indentation is to be at the beginning of
 * the tree row, simply do not call addIndent().
 *
 * Any other object which is valid within a qx.ui.layout.HorizontalBoxLayout
 * may be added to the structure using addObject().  If the object has no
 * special treatment, it may be made anonymous with obj.SetAnonymous(true).
 * Otherwise, all handling for the object should be done by the application.
 *
 * A "standard" (traditional) tree row would be generated like this:
 *
 *   treeRowStructure = new qx.ui.treefullcontrol.TreeRowStructure();
 * //treeRowStructure.addIndent()  // defaults to here; no need to call
 *   treeRowStructure.addIcon();
 *   treeRowStructure.addLabel("Trash");
 *
 * An example of a more sophisticated structure:
 *
 *   treeRowStructure = new qx.ui.treefullcontrol.TreeRowStructure();
 *
 *   // A left-justified icon
 *   obj = new qx.ui.basic.Image("icons/16/alarm.png");
 *   treeRowStructure.addObject(obj, true);
 *
 *   // Here's our indentation and tree-lines
 *   treeRowStructure.addIndent();
 *
 *   // The standard tree icon follows
 *   treeRowStructure.addIcon("icons/16/desktop.png","icons/16/dictionary.png");
 *
 *   // Right after the tree icon is a checkbox
 *   obj = new qx.ui.form.CheckBox(null, 23, null, false);
 *   obj.setPadding(0, 0);
 *   treeRowStructure.addObject(obj, true);
 *
 *   // The label
 *   treeRowStructure.addLabel("Trash");
 *
 *   // All else should be right justified
 *   obj = new qx.ui.basic.HorizontalSpacer;
 *   treeRowStructure.addObject(obj, true);
 *
 *   // Add a file size, date and mode
 *   obj = new qx.ui.basic.Label("23kb");
 *   obj.setWidth(50);
 *   treeRowStructure.addObject(obj, true);
 *   obj = new qx.ui.basic.Label("11 Sept 1959");
 *   obj.setWidth(150);
 *   treeRowStructure.addObject(obj, true);
 *   obj = new qx.ui.basic.Label("-rw-r--r--");
 *   obj.setWidth(80);
 *   treeRowStructure.addObject(obj, true);
 */

Cheers,

Derrell


_______________________________________________
Qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to