summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/metauml/manual/fig/test_picture_stack.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/metauml/manual/fig/test_picture_stack.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/metauml/manual/fig/test_picture_stack.mp130
1 files changed, 130 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/metauml/manual/fig/test_picture_stack.mp b/Master/texmf-dist/doc/metapost/metauml/manual/fig/test_picture_stack.mp
new file mode 100644
index 00000000000..8ad4776fa44
--- /dev/null
+++ b/Master/texmf-dist/doc/metapost/metauml/manual/fig/test_picture_stack.mp
@@ -0,0 +1,130 @@
+% Part of the MetaUML manual.
+% Copyright (C) 2005 Ovidiu Gheorghies
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+input metauml;
+
+string theFont;
+theFont := "tyxtt";
+
+util_log_thresholdlevel := 100;
+
+beginfig(1);
+ PictureStackInfoCopy.stackWay(iStack);
+
+ EPictureStack.emptyStack(stackWay)()("vcenter");
+ emptyStack.nw=(10,10);
+ drawObject(emptyStack);
+endfig;
+
+beginfig(2);
+ PictureStack.myStack("foo")("vcenter");
+ myStack.nw = (0,0);
+ PictureStack_draw.myStack;
+endfig;
+
+beginfig(3);
+ PictureStack.myStackB("foo", "bar")("vcenter");
+ myStackB.nw = (0,0);
+ PictureStack_draw.myStackB;
+endfig;
+
+beginfig(4);
+ % 1
+ PictureStack.stack("item A", "item B long", "C")("vcenter");
+ stack.info.boxed := 1;
+ stack.info.iPict.boxed := 1; % this does nothing, it's too late
+
+ stack.nw = (0,0);
+ drawObject(stack);
+
+ % 2
+ PictureStack.stackb("item A", "item B long", "C")("vcenter");
+ stackb.info.boxed := 1;
+ stackb.pict[0].info.boxed := 1;
+ stackb.pict[2].info.boxed := 1;
+
+ stackb.nw = (100,0);
+ drawObject(stackb);
+
+ % 3
+ PictureStackInfoCopy.myInfo(iStack);
+ myInfo.boxed := 1;
+ myInfo.iPict.boxed := 1;
+ EPictureStack.stackc(myInfo)("item A", "item B long", "C")("vcenter");
+
+ stackc.nw = (200,0);
+ drawObject(stackc);
+endfig;
+
+beginfig(5);
+ vardef joinCallback= enddef;
+ PictureStack.custom("A.A", "B__________B", "C-----C")
+ ("joinCallback");
+
+ drawObject(custom);
+endfig;
+
+beginfig(6);
+ save custom;
+
+ pickup pencircle scaled 4pt;
+ drawdot origin;
+
+ vardef joinCallbackA=
+ setObjectJoin(pa.bottom = pb.top + index*10; pa.left = pb.left);
+ setObjectJoinFirst(pa.nw = (30,0));
+ enddef;
+
+ PictureStack.customA("go", "further", "and further", "and further still")
+ ("joinCallbackA");
+
+ vardef joinCallbackB=
+ setObjectJoin(pb.bottom = customA.pict[index].bottom; pb.midx = pa.midx);
+ setObjectJoinFirst(pa.bottom = customA.pict[index].bottom);
+ enddef;
+
+ PictureStack.customB(".", "..", "...", "....")
+ ("joinCallbackB");
+
+ drawObjects(customA, customB);
+endfig;
+
+beginfig(7);
+ save stackX;
+ save stylePA, stylePB;
+ save stylePictureStack;
+
+ PictureInfoCopy.stylePA(iPict);
+ stylePA.borderColor := green;
+ stylePA.boxed := 1;
+
+ PictureInfoCopy.stylePB(iPict);
+ stylePB.borderColor := red;
+ stylePB.boxed := 1;
+
+ PictureStackInfoCopy.stylePictureStack(iStack);
+
+ def styleSupplier(expr i)= if i mod 2 = 0: stylePA else: stylePB fi enddef;
+
+ stylePictureStack.childStyleSupplier := "styleSupplier";
+
+ EPictureStack.stackX(stylePictureStack)("a","b","c","d","e")("vcenter");
+
+ drawObjects(stackX);
+endfig;
+
+end