Index: doc/menu classes.uxf
===================================================================
--- doc/menu classes.uxf	(revision 898ae8256d30dfe56a15c98ba7a422143ba59106)
+++ doc/menu classes.uxf	(revision 8166250ffff8b35d39b69b5f4f1dbd9d2d9f4aec)
@@ -21,5 +21,5 @@
 
 
-// This text will be stored with each diagram;  use it for notes.</help_text><zoom_level>10</zoom_level><element><type>com.umlet.element.base.Class</type><coordinates><x>0</x><y>330</y><w>210</w><h>140</h></coordinates><panel_attributes>Menu
+// This text will be stored with each diagram;  use it for notes.</help_text><zoom_level>7</zoom_level><element><type>com.umlet.element.base.Class</type><coordinates><x>266</x><y>21</y><w>147</w><h>98</h></coordinates><panel_attributes>Menu
 --
 --
@@ -30,5 +30,5 @@
 #display()
 --
--- Base class for all Menus</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>0</x><y>540</y><w>210</w><h>250</h></coordinates><panel_attributes>TextMenu
+-- Base class for all Menus</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>266</x><y>168</y><w>147</w><h>175</h></coordinates><panel_attributes>TextMenu
 --
 outputter: ostream
@@ -46,5 +46,5 @@
 hasQuit(): bool
 showEntry(MenuItem*)
-</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>740</x><y>300</y><w>370</w><h>380</h></coordinates><panel_attributes>MenuItem
+</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>784</x><y>0</y><w>259</w><h>266</h></coordinates><panel_attributes>MenuItem
 --
 char trigger: char
@@ -70,7 +70,7 @@
 Constraints
 -- A MenuItem always belongs to a single
--- Destruction is done by the owning menu</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>180</x><y>360</y><w>580</w><h>50</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
+-- Destruction is done by the owning menu</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>392</x><y>42</y><w>405</w><h>34</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
 m1=1
-m2=1...N</panel_attributes><additional_attributes>30;30;560;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>70</x><y>440</y><w>50</w><h>120</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;100</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>750</x><y>1200</y><w>360</w><h>120</h></coordinates><panel_attributes>ActionMenuItem
+m2=1...N</panel_attributes><additional_attributes>21;21;392;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>315</x><y>98</y><w>34</w><h>83</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;70</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>791</x><y>630</y><w>252</w><h>84</h></coordinates><panel_attributes>ActionMenuItem
 --
 
@@ -82,5 +82,5 @@
 Responsibilities
 -- Call action.call() when the trigger is recieved
-</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>880</x><y>650</y><w>50</w><h>570</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;550</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1400</x><y>830</y><w>340</w><h>260</h></coordinates><panel_attributes>DisplayMenuItem
+</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>882</x><y>245</y><w>34</w><h>398</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;385</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1246</x><y>371</y><w>238</w><h>182</h></coordinates><panel_attributes>DisplayMenuItem
 --
 string title;
@@ -98,5 +98,5 @@
 Responsibilities
 -- Display any kind of stringView within a Menu
--- All trigger are ignored</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1890</x><y>880</y><w>410</w><h>120</h></coordinates><panel_attributes>StringView
+-- All trigger are ignored</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1589</x><y>406</y><w>287</w><h>84</h></coordinates><panel_attributes>StringView
 --
 --
@@ -106,7 +106,7 @@
 --
 Responsibilities
--- Base class for anything that can be displayed as a String</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1710</x><y>900</y><w>190</w><h>40</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
+-- Base class for anything that can be displayed as a String</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1463</x><y>420</y><w>139</w><h>34</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
 m1=1...N
-m2=1</panel_attributes><additional_attributes>30;30;180;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>880</x><y>650</y><w>640</w><h>200</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;150;620;150;620;180</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>960</x><y>850</y><w>310</w><h>220</h></coordinates><panel_attributes>SeperatorItem
+m2=1</panel_attributes><additional_attributes>21;21;126;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>882</x><y>245</y><w>447</w><h>139</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;105;434;105;434;126</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>938</x><y>385</y><w>217</w><h>154</h></coordinates><panel_attributes>SeperatorItem
 --
 spacer: char
@@ -122,5 +122,5 @@
 --
 Responsibilities
--- Display a seperating line of spacers </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>880</x><y>650</y><w>250</w><h>220</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;150;230;150;230;200</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>350</x><y>760</y><w>360</w><h>140</h></coordinates><panel_attributes>&lt;&lt;composite&gt;&gt;
+-- Display a seperating line of spacers </panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>882</x><y>245</y><w>174</w><h>153</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;105;161;105;161;140</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>511</x><y>322</y><w>252</w><h>98</h></coordinates><panel_attributes>&lt;&lt;composite&gt;&gt;
 SubMenuItem
 --
@@ -131,7 +131,7 @@
 --
 Responsibilities
--- Produce a submenu when this item is triggered</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>180</x><y>410</y><w>190</w><h>460</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
+-- Produce a submenu when this item is triggered</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>392</x><y>77</y><w>132</w><h>321</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
 m1=1
-m2=1</panel_attributes><additional_attributes>170;440;110;440;110;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>650</y><w>440</w><h>130</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>420;30;420;80;30;80;30;110</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>380</x><y>1190</y><w>220</w><h>170</h></coordinates><panel_attributes>&lt;&lt;Command&gt;&gt;
+m2=1</panel_attributes><additional_attributes>119;308;77;308;77;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>609</x><y>245</y><w>307</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>294;21;294;56;21;56;21;77</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>532</x><y>623</y><w>154</w><h>119</h></coordinates><panel_attributes>&lt;&lt;Command&gt;&gt;
 Action
 --
@@ -144,7 +144,7 @@
 --
 Responsibilities
--- Perfom an Operation on call</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>570</x><y>1210</y><w>200</w><h>50</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
+-- Perfom an Operation on call</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>665</x><y>637</y><w>139</w><h>34</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
 m1=0...N
-m2=1</panel_attributes><additional_attributes>180;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>320</x><y>1470</y><w>340</w><h>190</h></coordinates><panel_attributes>&lt;&lt;Wrapper&gt;&gt;
+m2=1</panel_attributes><additional_attributes>126;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>658</x><y>826</y><w>238</w><h>133</h></coordinates><panel_attributes>&lt;&lt;Wrapper&gt;&gt;
 MethodAction
 --
@@ -158,5 +158,5 @@
 --
 Responsibilities
--- Transform an ordinary method into an Action</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>450</x><y>1330</y><w>50</w><h>160</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;140</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1970</x><y>640</y><w>260</w><h>80</h></coordinates><panel_attributes>&lt;&lt;View&gt;&gt;
+-- Transform an ordinary method into an Action</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>581</x><y>721</y><w>202</w><h>118</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;70;189;70;189;105</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1645</x><y>238</y><w>182</w><h>56</h></coordinates><panel_attributes>&lt;&lt;View&gt;&gt;
 View
 --
@@ -165,5 +165,5 @@
 Responsibilities
 -- Anything that needs to be shown
-</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2070</x><y>690</y><w>40</w><h>200</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;190</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1660</x><y>1190</y><w>410</w><h>150</h></coordinates><panel_attributes>&lt;&lt;Wrapper&gt;&gt;
+</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1715</x><y>273</y><w>34</w><h>146</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;133</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1428</x><y>623</y><w>287</w><h>105</h></coordinates><panel_attributes>&lt;&lt;Wrapper&gt;&gt;
 MethodStringView
 --
@@ -175,5 +175,5 @@
 --
 Responsibilities
--- Turn any method that returns a string into a StringView</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>2150</x><y>1190</y><w>470</w><h>150</h></coordinates><panel_attributes>&lt;&lt;Wrapper&gt;&gt;
+-- Turn any method that returns a string into a StringView</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1771</x><y>623</y><w>329</w><h>105</h></coordinates><panel_attributes>&lt;&lt;Wrapper&gt;&gt;
 StreamStringView
 --
@@ -185,3 +185,30 @@
 --
 Responsibilities
--- Turn any method that uses a stream for output into a StringView</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1830</x><y>970</y><w>270</w><h>230</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>260;30;260;120;30;120;30;220</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>2060</x><y>970</y><w>340</w><h>230</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;120;330;120;330;220</additional_attributes></element></umlet_diagram>
+-- Turn any method that uses a stream for output into a StringView</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1547</x><y>469</y><w>195</w><h>167</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>182;21;182;84;21;84;21;154</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1708</x><y>469</y><w>244</w><h>167</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>21;21;21;84;231;84;231;154</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>413</x><y>826</y><w>196</w><h>119</h></coordinates><panel_attributes>&lt;&lt;composite&gt;&gt;
+MakroAction
+--
+--
+#MakroAction(ActionSequence*)
+/+~MakroAction()/
+/+call()/
+/+undo()/
+/+canUndo(): bool/
+--
+Responsibilities
+-- Group several small actions together</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>140</x><y>623</y><w>231</w><h>133</h></coordinates><panel_attributes>ActionSequence
+--
+--
+#ActionSequence();
+/+~ActionSequence();/
+#addAction(Action*)
+#removeLastAction(): Action*
+#callAll()
+#undoAll()
+#canUndo(): bool
+--
+Responsibilities
+-- Group several actions together for later use</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>350</x><y>665</y><w>195</w><h>34</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
+m1=0...N
+m2=1...N</panel_attributes><additional_attributes>21;21;182;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>350</x><y>693</y><w>76</w><h>202</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;&lt;-
+m1=1
+m2=1</panel_attributes><additional_attributes>63;189;42;189;42;21;21;21</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>490</x><y>721</y><w>125</w><h>118</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>112;21;112;70;21;70;21;105</additional_attributes></element></umlet_diagram>
