Revision: 1892
http://svn.sourceforge.net/vexi/?rev=1892&view=rev
Author: clrg
Date: 2007-06-28 11:17:44 -0700 (Thu, 28 Jun 2007)
Log Message:
-----------
Work on tidying up menu to work with Vexi3
Modified Paths:
--------------
widgets/trunk/org.vexi.widgets/src/org/vexi/lib/img/border.t
widgets/trunk/org.vexi.widgets/src/org/vexi/lib/widget/menu.t
widgets/trunk/org.vexi.widgets/src/org/vexi/theme/win2k/menu.t
Modified: widgets/trunk/org.vexi.widgets/src/org/vexi/lib/img/border.t
===================================================================
--- widgets/trunk/org.vexi.widgets/src/org/vexi/lib/img/border.t
2007-06-28 17:52:52 UTC (rev 1891)
+++ widgets/trunk/org.vexi.widgets/src/org/vexi/lib/img/border.t
2007-06-28 18:17:44 UTC (rev 1892)
@@ -15,32 +15,30 @@
// left column
<ui:box orient="vertical" hshrink="true">
- <ui:box id="nw" shrink="true" />
- <ui:box id="ww" hshrink="true" />
- <ui:box id="sw" shrink="true" />
+ <ui:box id="nw" shrink="true"><ui:box shrink="true" /></ui:box>
+ <ui:box id="ww" hshrink="true"><ui:box hshrink="true" /></ui:box>
+ <ui:box id="sw" shrink="true"><ui:box shrink="true" /></ui:box>
</ui:box>
// central column
<ui:box orient="vertical">
- <ui:box id="nn" vshrink="true" />
+ <ui:box id="nn" vshrink="true"><ui:box vshrink="true" /></ui:box>
<ui:box id="content" />
- <ui:box id="ss" vshrink="true" />
+ <ui:box id="ss" vshrink="true"><ui:box vshrink="true" /></ui:box>
</ui:box>
// right column
<ui:box orient="vertical" hshrink="true">
- <ui:box id="ne" shrink="true" />
- <ui:box id="ee" hshrink="true" />
- <ui:box id="se" shrink="true" />
+ <ui:box id="ne" shrink="true"><ui:box shrink="true" /></ui:box>
+ <ui:box id="ee" hshrink="true"><ui:box hshrink="true" /></ui:box>
+ <ui:box id="se" shrink="true"><ui:box shrink="true" /></ui:box>
</ui:box>
vexi..vexi.util.redirect..addRedirect(thisbox, $content, "layout",
"orient");
thisbox.border = null;
- thisbox.depth = null;
+ thisbox.depth = 0;
- var canSetDepth = true;
-
/* sets the border according to value v where v is a colour or stream
*/
border ++= function(v)
{
@@ -55,25 +53,23 @@
$sw.fill = null;
$ss.fill = null;
$se.fill = null;
- canSetDepth = true;
}
// border image
else if (typeof(v) == "object")
{
- try { $nw.fill = v.nw; } catch (e) {};
- try { $nn.fill = v.nn; } catch (e) {};
- try { $ne.fill = v.ne; } catch (e) {};
- try { $ww.fill = v.ww; } catch (e) {};
- try { $ee.fill = v.ee; } catch (e) {};
- try { $sw.fill = v.sw; } catch (e) {};
- try { $ss.fill = v.ss; } catch (e) {};
- try { $se.fill = v.se; } catch (e) {};
- canSetDepth = false;
-
- $nn.minwidth = 0;
- $ss.minwidth = 0;
- $ww.minheight = 0;
- $ee.minheight = 0;
+ try { $nw[0].fill = v.nw; } catch (e) {};
+ try { $nn[0].fill = v.nn; } catch (e) {};
+ try { $ne[0].fill = v.ne; } catch (e) {};
+ try { $ww[0].fill = v.ww; } catch (e) {};
+ try { $ee[0].fill = v.ee; } catch (e) {};
+ try { $sw[0].fill = v.sw; } catch (e) {};
+ try { $ss[0].fill = v.ss; } catch (e) {};
+ try { $se[0].fill = v.se; } catch (e) {};
+
+ $nn[0].minwidth = 0;
+ $ss[0].minwidth = 0;
+ $ww[0].minheight = 0;
+ $ee[0].minheight = 0;
}
// border string
else
@@ -86,7 +82,6 @@
$sw.fill = v;
$ss.fill = v;
$se.fill = v;
- canSetDepth = true;
}
cascade = v;
}
@@ -94,26 +89,27 @@
/** set the depth of this border */
depth ++= function(v)
{
- if (canSetDepth)
- {
- $nw.minwidth = v;
- $nw.minheight = v;
- $ne.minwidth = v;
- $ne.minheight = v;
- $sw.minwidth = v;
- $sw.minheight = v;
- $se.minwidth = v;
- $se.minheight = v;
-
- $nn.minwidth = 0;
- $nn.minheight = v;
- $ss.minwidth = 0;
- $ss.minheight = v;
- $ww.minwidth = v;
- $ww.minheight = 0;
- $ee.minwidth = v;
- $ee.minheight = 0;
- }
+ if (typeof(v) != "number")
+ throw "Property 'depth' must be a number";
+
+ $nw.minwidth = v;
+ $nw.minheight = v;
+ $ne.minwidth = v;
+ $ne.minheight = v;
+ $sw.minwidth = v;
+ $sw.minheight = v;
+ $se.minwidth = v;
+ $se.minheight = v;
+
+ $nn.minwidth = 0;
+ $nn.minheight = v;
+ $ss.minwidth = 0;
+ $ss.minheight = v;
+ $ww.minwidth = v;
+ $ww.minheight = 0;
+ $ee.minwidth = v;
+ $ee.minheight = 0;
+
cascade = v;
}
Modified: widgets/trunk/org.vexi.widgets/src/org/vexi/lib/widget/menu.t
===================================================================
--- widgets/trunk/org.vexi.widgets/src/org/vexi/lib/widget/menu.t
2007-06-28 17:52:52 UTC (rev 1891)
+++ widgets/trunk/org.vexi.widgets/src/org/vexi/lib/widget/menu.t
2007-06-28 18:17:44 UTC (rev 1892)
@@ -13,14 +13,27 @@
thisbox.th_content;
thisbox.th_list;
+ var lockChildren = false;
+
/** th_content write trap */
th_content ++= function(v)
{
- v.ChildAdded ++= function(c)
+ v.Children ++= function(c)
{
+ // if locked, spoof put from th_list is in action
+ if (lockChildren) return;
+ // otherwise redirect child put to th_list
+ lockChildren = true;
th_list[th_list.numchildren] = c;
- cascade = c;
+ lockChildren = false;
+ // never complete the put
+ return;
}
+
+ v.Children ++= function()
+ {
+ return th_list[arguments.index];
+ }
}
/** popdown menu when a menu item is fired */
@@ -29,13 +42,21 @@
/** th_list write trap */
th_list ++= function(v)
{
- v.ChildAdded ++= function(c)
+ v.Children ++= function(c)
{
+ cascade = c;
+ if (c == null) return;
if (itemgroup) c.group = itemgroup;
else itemgroup = c.group;
c.action ++= childActionFunc;
- cascade = c;
+ // if locked, put has been redirected here from th_content
+ if (lockChildren) return;
+ // otherwise spoof the put back to th_content
+ lockChildren = true;
+ th_content[arguments.index] = c;
+ lockChildren = false;
}
+
cascade = v;
}
Modified: widgets/trunk/org.vexi.widgets/src/org/vexi/theme/win2k/menu.t
===================================================================
--- widgets/trunk/org.vexi.widgets/src/org/vexi/theme/win2k/menu.t
2007-06-28 17:52:52 UTC (rev 1891)
+++ widgets/trunk/org.vexi.widgets/src/org/vexi/theme/win2k/menu.t
2007-06-28 18:17:44 UTC (rev 1892)
@@ -7,9 +7,9 @@
<lib:menu />
<ui:box padding="4 6">
- <bevel id="bevel" packed="false" />
+ <bevel id="bevel" depth="1" />
<bevel id="popbox" form="above" shrink="true">
- <ui:box id="content" cols="1" fill="#d4d0c8" />
+ <ui:box id="content" orient="vertical" fill="#d4d0c8" />
</bevel>
thisbox.th_bevel = $bevel;
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 DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn