Revision: 2328
http://vexi.svn.sourceforge.net/vexi/?rev=2328&view=rev
Author: clrg
Date: 2007-09-24 16:12:41 -0700 (Mon, 24 Sep 2007)
Log Message:
-----------
Add support for custom tree icons using both fill and icon templates
Modified Paths:
--------------
trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/tree.t
trunk/widgets/org.vexi.widgets/src/org/vexi/theme/win2k/tree.t
trunk/widgets/org.vexi.widgets/src/vexi/widget/tree.t
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/tree.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/tree.t
2007-09-24 22:51:19 UTC (rev 2327)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/tree.t
2007-09-24 23:12:41 UTC (rev 2328)
@@ -8,28 +8,26 @@
<selectable />
<ui:box>
- thisbox.th_content = null;
- thisbox.th_expand = null;
- thisbox.th_handle = null;
- thisbox.th_node = null;
- thisbox.th_title = null;
+ thisbox.th_content;
+ thisbox.th_expand;
+ thisbox.th_handle;
+ thisbox.th_image;
+ thisbox.th_node;
+ thisbox.th_title;
- thisbox.v_isroot = true;
+ thisbox.iconinit = false;
thisbox.v_self ++= function() { return thisbox; }
thisbox.expanded = true;
+ thisbox.iconfill;
+ thisbox.icontemplate;
- var icontemplate = null;
-
/** used for closing / expanding the tree */
thisbox.flipDisplay = function(v) { expanded = !th_expand.display;
cascade = v; }
/** select when we mouse press on the node */
thisbox.nodePress = function(v) { selected = true; cascade = v; }
- /** used for fancier icon implementations */
- thisbox.setIconTemplate = function(i) { icontemplate = i; }
-
thisbox.childrenWrite = function(c) {
if (c and c.v_istree) {
var cself = c.v_self;
@@ -94,16 +92,47 @@
thisbox.expanded ++= static.expandRead;
thisbox.expanded ++= static.expandWrite;
+ thisbox.iconfill ++= static.iconWrite;
+ thisbox.icontemplate ++= static.iconWrite;
+ thisbox.iconinit ++= static.iconinitWrite;
thisbox.nextselect ++= static.nextselectRead;
thisbox.prevselect ++= static.prevselectRead;
thisbox.th_content ++= static.contentWrite;
thisbox.th_handle ++= static.handleWrite;
thisbox.th_node ++= static.nodeWrite;
thisbox.th_title ++= static.titleWrite;
+ thisbox.visible ++= static.visibleWrite;
thisbox.KeyPressed ++= static.keypressWrite;
</ui:box>
+ static.iconWrite = function(v) {
+ cascade = v;
+ if (trapee.visible) trapee.iconinit = true;
+ }
+
+ static.iconinitWrite = function(v) {
+ var t = trapee;
+ var icon = t.th_icon;
+ if (t.icontemplate) {
+ icon.fill = null;
+ if (icon[0]) icon[0] = null;
+ icon[0] = v(vexi.box);
+ } else {
+ icon.fill = t.th_iconfill;
+ if (icon[0]) icon[0] = null;
+ }
+ cascade = v;
+ }
+
+ static.visibleWrite = function(v) {
+ cascade = v;
+ if (v) {
+ trapee.iconinit = true;
+ trapee.visible --= callee;
+ }
+ }
+
static.expandRead = function() { return trapee.th_expand.display; }
static.expandWrite = function(v) {
var t = trapee;
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/theme/win2k/tree.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/theme/win2k/tree.t
2007-09-24 22:51:19 UTC (rev 2327)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/theme/win2k/tree.t
2007-09-24 23:12:41 UTC (rev 2328)
@@ -14,7 +14,7 @@
<ui:box id="handle" display="false" fill=":.image.tree_minus"
shrink="true" />
</ui:box>
<ui:box id="node" vshrink="true">
- <ui:box id="image" align="center" fill=":.image.tree_folder"
shrink="true" />
+ <ui:box id="image" align="center" shrink="true" />
<ui:box width="3" shrink="true" />
<focusborder id="focus" showfocus="false" shrink="true">
<lay:pad id="pad" padding="1 3">
@@ -39,6 +39,8 @@
thisbox.th_expand = $expand;
thisbox.th_focus = $focus;
thisbox.th_handle = $handle;
+ thisbox.th_icon = $image;
+ thisbox.th_iconfill = .image.tree_folder;
thisbox.th_node = $node;
thisbox.th_title = $label;
Modified: trunk/widgets/org.vexi.widgets/src/vexi/widget/tree.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/vexi/widget/tree.t 2007-09-24
22:51:19 UTC (rev 2327)
+++ trunk/widgets/org.vexi.widgets/src/vexi/widget/tree.t 2007-09-24
23:12:41 UTC (rev 2328)
@@ -16,7 +16,8 @@
// glue code
- rdrt..addRedirect(thisbox, $widget, "enabled", "fill", "focusable",
"focused", "font", "fontsize", "v_isroot", "v_self",
+ rdrt..addRedirect(thisbox, $widget, "enabled", "fill", "focusable",
"focused", "font", "fontsize",
+ "expanded", "icontemplate", "iconfill",
"iconinit", "v_self",
"margin", "marginleft", "marginright",
"margintop", "marginbottom",
"padding", "paddingleft",
"paddingright", "paddingtop", "paddingbottom",
"group", "selected", "text",
"textcolor", "KeyPressed", "KeyReleased");
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn