]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/tools/XRCed/images.py
Putting draft of wxImplDC and the wxDC using it
[wxWidgets.git] / wxPython / wx / tools / XRCed / images.py
index 8049fba30c6263c3cd1aa90b58c35d1d721f69af..a960ae3334b212f53c5b07436792bd5492d16dfd 100644 (file)
@@ -1,26 +1,25 @@
 #----------------------------------------------------------------------
 # This file was generated by encode_bitmaps.py
 #
-from wx import ImageFromStream, BitmapFromImage
-from wx import EmptyIcon
+from wx import ImageFromStream, BitmapFromImage, EmptyIcon
 import cStringIO
 
 
 def getAutoRefreshData():
     return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xfaIDATH\x89\xb5T\xbb\x0e\x830\x0c<'\x1d\xe8\x9f2\x06X*>\xa0\xea\xd2\
-\xd6c\xff\xb4,m:\x01\xc1\x8a\x93@\x95\x932\x90\xc7\x1d\xf6\xd9&2\x165a\xaa\
-\xb2\x038\x95^|\x7f?^\xee\x9d\x8d\xa5\xdc\xbb\xa2\x08B\xf2\x17sR\xb4X`~\x1c#\
-\x0f\xff<'\x92\x8c F\xde\xf5\x03I\x91\xe7\xe3\xae\x8a\x14{\xd0:W\x94s\t\xd2\
-\xcaT\x0b]K\x8f&^,\x10\x9a\xdb\xf5\x03\xf9\xeb\xf6\x9c\x1b^\xd2\xb7K@\x12\
-\x03\xc0L\xce\r\xa3u\x0e\xcdM\x17Q=8\x1bK\xb3y\xf2\x11\x8d\xebY\x0ej\x049\
-\xc8\x14\x01\xf1\x08\x0e\x8d\x8a0E\xd3%}\xb7\xfa,\xca6Z\xaaS\xdd\xb4\x1a|H \
-\x14\n\xbfi\xdc\xd6<7\xbc\x08JdM\x0e\xcbU\x1a\x18+e@T\x1d\x19\x9b\\\x13\xe0\
-\xe7\xa5\xed3\xb3\xd7\xdegS\x14\x1b\r\xda\xf8\x8e\xa1\xb8\x0fbf\xcb\t\xfb\
-\x97\x00\x10\x1f\xcb)\xf2\xdd\x02GP\xbd\xd1~)\x14\xa25\xbe/\xa7J\x00\x00\x00\
-\x00IEND\xaeB`\x82" 
+"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00\xfdIDATH\x89\xc5T\xcb\x12\x820\x0c\xdc\x14\x0f\xf5O9\x16\xb88|\x80\xe3E\
+\xcd\xd1?\x95\x8b\xe2\xa9P2M[P\xc6\x9d\xe9\x81>vI6\t\x91\xa9\xb0'\xcc\xae\
+\xec\x00\x0e\xa5\x17\x9f\xef\xd7(\xf7\x8e\xa6\xa2\xdc\xbb\xa2\x08B\xf2\x07sR\
+\xb4X\xc0?\x8e\x91\x87\x7f\x9e\x13IF\x10#o\xda\x8e\xa4\xc8\xfdvUE\x8a=\xa8\
+\x9d+\xca\xb9\x04ie\xaa\x85\xae\xa5G\x13/\x16\x08\xcdm\xda\x8e\xc6\xf3\xf2\
+\x9c-O\xe9[% \x89\x01\xc0\x93\xb3e\xd4\xce\xc1^t\x11\xd5\x83\xa3\xa9\xc8\x9b\
+'\x1fQ?\x9f\xe5\xa0F\x90\x83L\x11\x10\x8f`\xd3\xa8\x08S4\x9c\xd2ww\x9fE\xd9F\
+Ku\xaa\x1bf\x837\t\x84B\xe17\xf5\xcb\x9ag\xcb\x93\xa0D\xd6\xe4\xb0\\\xa5\x81\
+\xb1R\x06D\xd5\x91\xa9\x92k\x00F\xbf\xb4}f\x1e\xb5\xf7\xd9\x14\xc5F\x836\xbe\
+c(\xee\x83\x98\xd9r\xc2~%\x00\xc4\xc7r\x8a|\xb5\xc0\x16\xfc\xb7\xd1~\x81\x0f\
+\xa3~\xa27=\x9c\x90\xeb\x00\x00\x00\x00IEND\xaeB`\x82" 
 
 def getAutoRefreshBitmap():
     return BitmapFromImage(getAutoRefreshImage())
@@ -34,61 +33,6 @@ def getAutoRefreshIcon():
     icon.CopyFromBitmap(getAutoRefreshBitmap())
     return icon
 
-#----------------------------------------------------------------------
-def getCopyData():
-    return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xdbIDATH\x89\xed\x951\x0b\x830\x10\x85\xdf%\x19\xf2sm\xbb\xb8\x14\x04\
-\x97.m\xfd\xa9\x1do\x88^\x07\xa9T\xbd\x0b\x8a\x95.>8\x88\x07\xb9\x8f\xf7L\
-\x08\x91\xf3\xd8Sn\xd7\xe9\x07`\x89\x82\xd6\x94\xae\x15\xadO\xce\xd3O\x00\
-\x00\xc0\x89G\xdf1DH\xd7\xcaZ\xc8\xaa\x888\xb1\xe9\xce\x12i\xf7@\xbaV81b\x88\
-\xc3\xe0~]\xe9C\\m\xba\xca\x02\xa6\x8a\xe1\x06N\xe5\xac\x97\x83d#\x8a!\x8e\
-\xca\x12\xa7\x12\xd2]\xd5\xe8\xb2\x00N<\xaa)x\xeaB\x85\x90\xf3\xb3\x02 \x9cX\
-\x00L\xaa\x12Nl\x16PI\xd34\xf2=k\x93\x83%\xf1\x99\xf7@\xdfT\r\xe0\xa5R\x01\
-\xe4<=\x1f\xf7Y\x9eE\xf12\xe1\x16\xd4tp:_\x94c\xd7\xff\xc4\xcd\x0er\xfa\x9c\
-\x98]\x00\xe4j5\xba\xec\x9e\xe3\xc9\xfc;\xe0\r\x05\xd7\x89\x15\xc8\xd1'\xd6\
-\x00\x00\x00\x00IEND\xaeB`\x82" 
-
-def getCopyBitmap():
-    return BitmapFromImage(getCopyImage())
-
-def getCopyImage():
-    stream = cStringIO.StringIO(getCopyData())
-    return ImageFromStream(stream)
-
-def getCopyIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getCopyBitmap())
-    return icon
-
-#----------------------------------------------------------------------
-def getCutData():
-    return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xc9IDATH\x89\xcdTA\x0e\xc3 \x0cs\xc2\x07\xf6T\xb6\x9d+M\xday[\x9e\xda\
-\x0f\xac\xec\xd2l\x88\x15\x02HHX\xca\xa5ml\xe2\x98\x12\xb1\xc3H\xf0P\xf6i\
-\x04\xc2\xf6\x0eC\x05\x00\xe0\xf5|\x1c\x8a\x98\xe2\xc4\xce,\x00\x01@\xc8=\
-\x17\x91\xbfwZU\x13\x10;J\xa7\xd0\x93\x8bH\xb9\xb76\xa6JH\xec(%?_\xae\x94\
-\xebkNQ\xba\x8b\x12y\x93\x80\xda\xe4\xbd\x07`[\xd3,p\x04\xeb\xf4@\xd3\x0e\
-\x96\xdd\x9a\xdb^\x00\xf1\xdd\x14h\x9e \xb6&lK\xf8\tw\n\x94HDN\xdfo\xba\x04\
-\xb4Q\x89J\xc8\xdd\xf49~v)t\xb9\xde\xaf\x00\xca\x13\x9a)\x8a\xfdU"\x8dglK.\
-\xb2U1\xad!\xca\xa1\xfa\x1e\xf4b\xce%O%\xf0\x01\x1c\x13_\xd0\x15\xbcWd\x00\
-\x00\x00\x00IEND\xaeB`\x82' 
-
-def getCutBitmap():
-    return BitmapFromImage(getCutImage())
-
-def getCutImage():
-    stream = cStringIO.StringIO(getCutData())
-    return ImageFromStream(stream)
-
-def getCutIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getCutBitmap())
-    return icon
-
 #----------------------------------------------------------------------
 def getIconData():
     return \
@@ -131,23 +75,24 @@ def getIconIcon():
 #----------------------------------------------------------------------
 def getLocateData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x01\x84IDATH\x89\xb5U\xc1\x8d\x830\x10\\\'W\x07\xc2=\xe4\x83RG>i\xc2\xba\\\
-\x1d\x10\xdc\x04\x9f+$\x1fz\x00\xd1\x88\xef\x01k\xc6\xeb\x05r\xd2\xddJH\x04\
-\xdb3\xbb\xb3\xb3\x8e1\xa73\xfdg|\x1cm(\xab"\xec\xad\x8f\xaf\xc9\xec\xad\x9b\
-\xad\n\x12`\xbbqz8&:\xed\x82\xdb\x15\xdc]\xdc\x0c8,\xefb}\xab\xd2\x8c \x01_\
-\x80# \xc4\xd8M&!\xda Iz\xa0\x81\x13\x11}>\xbe\x8c\x06\x10\xbf\xdf\x8b@v\xae\
-\xae\xac\x8a\x80r%=(\xabe\xa3\x00/\xefz\xf9c\xb7\x02\xc5=\x03\x91\xbb\xb9H\
-\x1e%\xc2\xec$x\x94\x03z\xe0.\x8e\x90\x18\xc9\xfc\xb7\x8fI\xa4=\x00\xb7 \xf8\
-\xb3\xa9\x03g\x84\xebc7\xe5\xd5-\x18\xcf\xa6\x0e9\x01d\xcf\x81\xe0\xe3k2\xee\
-\x967\x9c\xc1\xb0\n\x8e\xd8\x83\xa8?x\x1b\x7fK\x9f\'\x86P\xcep\x1f\xd49\xd0\
-\x82\xb3\xfcmdW\x05J\xe0{O\x9a$DsE\xcf\xa6\x0er\x8f\xef}\xb2/#\xf0\xbd\x8fZr\
-\x03\xe5\x1c\xb0\\h\xe1-;\xa7\x12-Zb\xd3dF\xb8\xce.\xd3086\x07M\x1d"\x11ha9h\
-\\U~]\x0fDd\xd3\xec\x18\x88\x07(j~\xa1\x0c\x9c#\x9bd"\xb0\xe2\x90g\xae\r\x9a\
-\x06.M\x91\xd9T#\xd1$J\xbe\x0bpL\xe6\xcf\xfep4\xf0]\x02\xa2\xd9-xqi\x81\x92H\
-\xf0C\x02$"ZoI\xa9\xb3\x06\xbc2\x9c\xceo?\xf6j\x83\xbd\xda\xd0\xb6mx\xf7\xcc\
-\x0f\x93Y\xfb-\xb8Y\x01\xd4\x00\x00\x00\x00IEND\xaeB`\x82' 
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x01\x88IDATH\x89\xb5V\xc1\x8d\x830\x10\\\'W\x07\xc2=\xf0A\xa9#\x9f4a\xdd]\
+\x1d\t\xb8\t>WH>\xf4\x00\xa2\x11\xdf\x03\xd6\x8c\xd7\x0b\xe4\xa4\xcbJ\x91\
+\x12l\xcf\xec\xce\xce\x9a\x18s:\xd3;\xe3\xe3hCY\x17ao}|Nfo\xddlU\x90\x00\xdb\
+\x8d\xd3\xc31\xd1i\x17\xdc\xae\xe0\xaer3\xe0\xb0|\x17\xeb[\x95f\x04\t\xf8\
+\x02\x1c\x01!\xc6n2\t\xd1\x06I\xd2\x03\r\x9c\x88\xe8\xf3\xeb\xdbh\x00\xf1\
+\xf9\xad\x08d\xe7\xea\xca\xba\x08(W\xd2\x83\xb2^6\n\xf0\xf2\xa6\x97?v+P\xdc3\
+\x10\xb9\xab\x8b\xe4Q"\xccN\x82G9\xa0\x07\xaer\x84\xc4H\xe6\x7f|L"\xed\x01\
+\xb8\x05\xc1\x9b\xc7=pF\xb8>vS^\xdd\x82\xd1<\xee!\'\x80\xec9\x10||N\xc6]\xf3\
+\x863\x18V\xc1\x11{\x10\xf5\x07o\xe3o\xe9\xf3\xc4\x10\xca\x19\xee\x83:\x07Zp\
+\x96\x7f\x8d\xec\xaa@\t|\xefI\x93\x84h\xae\xa8y\xdc\x83\xdc\xe3{\x9f\xec\xcb\
+\x08|\xef\xa3\x96\xdc@9\x07,\x17Zx\xcb\xce\xa9D\x8b\x96\xd84\x99\x11\xae\xb3\
+\xcb4\x0c\x8e\xcdAS\x87H\x04ZX\x0e\x1aW\x95_\xd7\x03\x11\xd94;\x06\xe2\x01\
+\x8a\x9aW\x94\x81sd\x93L\x04V\x1c\xf2\xcc\xb5A\xd3\xc0\xa5)2\x9bj$\x9aD\xc9s\
+\x01\x8e\xc9\xfc\xdb\x0bG\x03\xdf% \x9a\xdd\x82\x17\x97\x16(\x89\x04?$@"\xa2\
+\xf5\x96\x94:k\xc0+\xc3\xe9\xfc\xf2\xc7^l\xb0\x17\x1b\xda\xb6\r/\x9f{\xf7\
+\xdf\x96_\xc7\x90\xfb4\xe23\t\xcc\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getLocateBitmap():
     return BitmapFromImage(getLocateImage())
@@ -164,23 +109,24 @@ def getLocateIcon():
 #----------------------------------------------------------------------
 def getLocateArmedData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x01zIDATH\x89\xb5U\xc1\x8d\xc2@\x0c\x9c\xe5\xeeO\x07\x14@\x03@!H\x14\xc0?\n\
-\xd4\x91D\xfb\xa7\x00$\n\x01\x1a\xa0\x00:\xa0\x82\xe5\x81\x86L\xbc\xde \xa4\
-\xbby\xc6\xce\x8c=\xb6\x93\x10&?\xf8O\xfc~J\xd8\xccgi,~\xbc\xdd\xc3X<\x94:P\
-\xe2j\xea\xbf\x1c\x1f\x9f\x85&c\xe4\xd5\xb4\'\xbf\xac+\xc4\xc7\x8b\xf4\xb2\
-\xae`\xe3\xa5N3\x01%\'1\t\x15\xab\xf3=\xa8PId \xe0\x91\x03@\xbd\xdb\x87z\xb7\
-\xcf,\xa8w\xfb\xb0:\xbf\xac)\x89\x0cf\xb0\x99\xcf\x92G~^\xf9\xed\x93\x1c\x00\
-\x98\x13\x1f\xc0b[\x81\x05\xbd;PeKN;t\x06\x97u\x05\x15V\xb1\xeb!\xfa\x16\xe9\
-\xb6(y\xd76\xc9ZD{lw\xe4\xe8\xda&e\x02Z=\xa1\xe4\xc7\xdb=,\xb6\xf9\xc0I\xa6]\
-\x10\xd9\xa1\xb1=Zv=Dl\xe6\xb3\xc4=\xa7\x98Z\xca\x9cL\xd9\xeb\xa0\x04V\xf9-\
-\xb2\x0e\x06\x16\x9c"<K\x80\x97]]\xdb\xa4,\xe7\x14\x07y\x99\xc0\xf2\x14\xdf^\
-r\x80\xd6\x16\xb5Ks\xbcu\x1eX\xc4o\x8b\x0emi*\xd28\xb7\xcc\xe3 \x8a\x87\xe6\
-\x1d\x91\x85\xae\xb0=4v\x95\t\x00\xfd.\xabH\xd76\x89\x1b\xa6\x9e[r\xc6\xb3K\
-\x06zo\x99\xa8\x95{\x87V"Wdk\xea\x89x\x16\xe9sK\xae\xc5\xfc\xd9\x0f\xc7#\x1f\
-\x15\x00\x86\xbe\x97`\xe7a\xe3\xa3\x02*\x04\xf4\x9f\x11\xeb\xb3G\xfc\x95\x00\
-A\xdbtK>\xe1\t\xf2\xe2\x0b\rG\xef\x97\xb3\x00\x00\x00\x00IEND\xaeB`\x82' 
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x01~IDATH\x89\xb5U\xc1\x8d\xc2@\x0c\x9c\xe5\xeeO\x07\x14@\x03@!H\x14\xc0?\n\
+\xd4\x91D\xfb\xa7\x00$\n\x01\x1a\xa0\x00:\xa0\x82\xbd\x07\x1a2\xf1z\x838\xdd\
+\xcd3vf\xec\xb1\x9d\x840\xf9\xc2\x7f\xe2\xfb]\xc2f>Kc\xf1\xe3\xed\x1e\xc6\
+\xe2\xa1\xd4\x81\x12WS\xff\xe5\xf8x/4\x19#\xaf\xa6=\xf9e]!>\x9e\xa4\x97u\x05\
+\x1b/u\x9a\t(9\x89I\xa8X\x9d\xefA\x85J"\x03\x01\x8f\x1c\x00\xea\xdd>\xd4\xbb\
+}fA\xbd\xdb\x87\xd5\xf9iMId0\x83\xcd|\x96<\xf2\xf3\xcao\x9f\xe4\x00\xc0\x9c\
+\xf8\x00\x16\xdb\n,\xe8\xd5\x81*[r\xda\xa13\xb8\xac+\xa8\xb0\x8a]\x0f\xd1\
+\xb7H\xb7E\xc9\xbb\xb6I\xd6"\xdac\xbb#G\xd76)\x13\xd0\xea\t%?\xde\xeea\xb1\
+\xcd\x07N2\xed\x82\xc8\x0e\x8d\xed\xd1\xb2\xeb!b3\x9f%\xee9\xc5\xd4R\xe6d\
+\xca^\x07%\xb0\xcaO\x91u0\xb0\xe0\x14\xe1Y\x02<\xed\xea\xda&e9\xa78\xc8\xcb\
+\x04\x96\xa7\xf8\xf2\x92\x03\xb4\xb6\xa8]\x9a\xe3\xad\xf3\xc0"~[thKS\x91\xc6\
+\xb9e\x1e\x07Q<4\xef\x88,t\x85\xed\xa1\xb1\xabL\x00\xe8wYE\xba\xb6I\xdc0\xf5\
+\xdc\x923\x9e]2\xd0{\xcbD\xad\xdc;\xb4\x12\xb9"[SO\xc4\xb3H\x9f[r-\xe6\xcf~8\
+\x1e\xf9\xa8\x000\xf4\xbd\x04;\x0f\x1b\x1f\x15P!\xa0\xff\x8cX\x9f=\xe2\x8f\
+\x04\x08\xda\xa6[\xf2\x0e\x1f\t\xfc\x06?%\xb3\x0b\x14\x95x1\xa9\x00\x00\x00\
+\x00IEND\xaeB`\x82' 
 
 def getLocateArmedBitmap():
     return BitmapFromImage(getLocateArmedImage())
@@ -194,123 +140,20 @@ def getLocateArmedIcon():
     icon.CopyFromBitmap(getLocateArmedBitmap())
     return icon
 
-#----------------------------------------------------------------------
-def getNewData():
-    return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00uIDATH\x89\xed\xd5\xc1\n\xc0 \x08\x06\xe0_\xeb\xe0\xcbo{]\x0f\x95;\xb5S\
-\xabX\xc4\x18K\xe8\x92\xd0G\xa2E\xc4\x0e3\x83\xa7\x9e\xbe\x80\x9e\xf0\xb5\
-\xa4\xa5h\xb5<\xb1\xa3!\x00\x004hq_\xbc\xc0R\xb4\x162T"\r\xda\xbc\xe5\x10 ^\
-\x00\xd4K\xf9\x18\xd0\xa0\xd7\x02\x80c\xdf\x8a\xc8\xf7\xdbt\x01?\x00\x9aOE\
-\x1e\xa6)\x00\xb1\xa3\xbb\x01\xea\rZ_\xe6\xeb\xc0\tP=$d\xfd\x92a\x0c\x00\x00\
-\x00\x00IEND\xaeB`\x82' 
-
-def getNewBitmap():
-    return BitmapFromImage(getNewImage())
-
-def getNewImage():
-    stream = cStringIO.StringIO(getNewData())
-    return ImageFromStream(stream)
-
-def getNewIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getNewBitmap())
-    return icon
-
-#----------------------------------------------------------------------
-def getOpenData():
-    return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xccIDATH\x89\xed\x95A\x0e\x820\x10E_\x8b\x8b\x1e\xcc\x85\xd7Q\xcf\xa1r\
-\x1c\x16\x1e\xac\x0bJ]\x90\x12(t\x06\t,L\xfc\t\x81\x90\xf2^g\xa6\t\xc6\xd8\
-\x8a#c\x0f\xa5\xff\x05kr\xda\xfaa\xecBL\xcf\xc6V\xa6\xb4nS\x05\xb1\x0b\xd1\
-\xd8\xca\xa4+\xc9\xc6\xd2A\xbe\xd71M\xf0\xbc\x9ab\x8b\xd6\xb6 _\x9bg\xb1\x82\
-\xd8\x85\xe8[\x00\x0f8\x9c0)M.\xcc\xa0\x87\x83\xc7\xb7\xe0\xdb\xf9\x1d\xe0\
-\xf5|\x14w\xaf\x08\xdcD\xb2|\xd7#\xb4h\n\x93\xda4\x01\xae\x1dr\x0eo\xde:\xfc\
-r\xee[v\xbd\xdd\x07\x892\x03\xbe\x82\xd7u={/V\xb0\x05>\xde=\x08\x15\xec\x01\
-\x07a\xc8:\xba\x8f\x04/\n@?\xdf\xe3\x94\xe0\xa2`\xaf\xfc\xfe\x0f\xe7p\xc1\
-\x07\x0c,c\x92!#\x88\xcc\x00\x00\x00\x00IEND\xaeB`\x82' 
-
-def getOpenBitmap():
-    return BitmapFromImage(getOpenImage())
-
-def getOpenImage():
-    stream = cStringIO.StringIO(getOpenData())
-    return ImageFromStream(stream)
-
-def getOpenIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getOpenBitmap())
-    return icon
-
-#----------------------------------------------------------------------
-def getPasteData():
-    return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xddIDATH\x89\xed\x95\xbb\x0e\xc3 \x0cE\xaf\t\x03\x9f\x9b\xb6KG\x8fY\xda\
-\xfejG\x06\x12:T\xa4\x04L\x83\x920T\xaa\xa5(\x18\xc1=\xc6\xe6A\xa4:\xb44\xd5\
-T\xfd\x0f\xa81];\xd0O\xa3\x8f}R\x1d\xd5\xcc\xa3\xd2.J\x05\x01\xc0\xba\xf7\
-\xdf\x08a\x95\x80\xe2\n\xfc4zf\x9e}f\x86u\x1f\xe1\xd0N\xc6x\t\xb2Z\x83 \x1e\
-\x84\xe3v\x0c\x00\x80\xc7\xfd\x96\xad\xba\xaa\x06RJjmuj\x1a\xe5\xe1\x80%\xac\
-1\x00\x00\xac\xbbf}F\x0f\x00d\xfa\x8e\xec\xe6`\xa3\x07P\xb2m6\x9dd\xa3\x87\
-\xf9\x8b\xfb\x80|'mZA\x9a\xa6\xe0\xc7\xc0]\x00IH\xaaM\x11@\xaa#f\xce\x0eM(dI\
-\xac\x1a\x10 i>\xfb\xfe)F\xbf\t\x00\x00\xa7\xf3eq\xb7\x90\x92\xaf\x83oV\xbcM\
-\x8f\xb2\xdf\x7f\xd1^\xd8\x83K\xcb\xd7~\xc8I\x00\x00\x00\x00IEND\xaeB`\x82" 
-
-def getPasteBitmap():
-    return BitmapFromImage(getPasteImage())
-
-def getPasteImage():
-    stream = cStringIO.StringIO(getPasteData())
-    return ImageFromStream(stream)
-
-def getPasteIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getPasteBitmap())
-    return icon
-
-#----------------------------------------------------------------------
-def getRedoData():
-    return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x17\x00\x00\x00\x16\x08\x06\
-\x00\x00\x00+v\x07\x05\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xb7IDAT8\x8d\xed\x941\x0e\xc20\x0cE_\xd2\x0eA\xeaE\x18;2Fbb\xac\xd4\x03\
-00p"\x06\x8e\x80\xd4+\xf4\x08\\\x86\x81%5C\x15\x86R\xd2\xb4"b\xe9\x97\xbc\
-\xfc\xc8\xcf\x8e\x15G)\x9d\x91J:\x19y\x85\xff\x1c.\x9d\x93d\xf0\x98\x02\xb3\
-\xe0\xd29\xf1q8\xee\xa8\xce6X@\xc5\xbcs\x0f\xb0u\xc9\xa60\x98\xdc\x00`\nx>\
-\xa0\xb9\xb6(\x9d\xa9\xd9p\xe9\x9c\xd8\xba\x04\xa0\xbd\xdd\xdf~u\xb2\x90Cs\
-\x19\x07\xf7t\x9d\x05\x03\x90r\xbf\x15@\x86\xfe\xd0\xfb\xc8]\x02\xf6gS\x8d\
-\x05\xc7\xe2g\xfd\xf5\xda\x13\xfa\xdf\x12-\xed8\n\xee\x0b\xc4l\xe3h\xee\xfa\
-\x9f\xaf\xf0h\xbd\x00xo@\x10\x94\x18\xa9\r\x00\x00\x00\x00IEND\xaeB`\x82' 
-
-def getRedoBitmap():
-    return BitmapFromImage(getRedoImage())
-
-def getRedoImage():
-    stream = cStringIO.StringIO(getRedoData())
-    return ImageFromStream(stream)
-
-def getRedoIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getRedoBitmap())
-    return icon
-
 #----------------------------------------------------------------------
 def getRefreshData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xcaIDATH\x89\xc5\x94\xc1\x0e\x83 \x10Dw\xa1\x17\xff\xd4#m\xbf\xa3\xed\
-\x1e\xf9SOjO$Hve\x90\x10\xe7\xa6\xd1y0,\xc3\xec<\x8d\x94\x1b\xeaND\x0f\xf4\
-\xc3e[\xf7\xf2\xdd\xe4<\xd7\xfe\x83v\x90\x9bG\x91S(\x0cH?k\xe6\xf9\xcak\x90\
-\xd3\x1dh\xe6\xcf\xd7\x9bK\xc8\xef\xfb1!\xf0\x19\xcc!@\x99\x97bkL\xad\xad[\
-\xf1XpxL\xa3\x08E\x91C\x1cHL\xd5\x88\xf2\xa9I\xf9\xb7\xc8\x04L\xcesZ\xd5\x15\
-\xe3*\xa0\xd78ixU\xdc\x0bX\xb6u?\xbb\xa9]U\xd1b\x94OZ\x13\x00\xad\x03"{ \xe0\
-3\x98C8<#\xf1@\x00\xad\x1a\xac\xfa\xd6dvQ)m\xc5e\xc3v\x01\x88\xf4s\xa8]\xc6&\
-\xc0\x15\r\xbfh\x7f\xefOoH\x13\xe7\xb6\xfc\x00\x00\x00\x00IEND\xaeB`\x82' 
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00\xccIDATH\x89\xd5\x94\xc1\x0e\x83 \x10Dw\xa1\x17\xff\xd4#m\xbf\xa3\xed\
+\x1e\xf9SOjO$Hve\x90\x90\xa6s\xd3\xe8<\x18\x96av\x9eF\xca\ru\'\xa2\x1b\xfa\
+\xe1\xb2\xad{\xf9nr\x9ek\xffA;\xc8\xcd\xa3\xc8)\x14\x06\xa4\x9f5\xf3|\xe55\
+\xc8\xe9\x0e4\xf3\xfb\xe3\xc9%\xe4\xf3~\x99\x10\xf8\x0c\xe6\x10\xa0\xccK\xb1\
+5\xa6\xd6\xd6\xadx,8<\xa6Q\x84\xa2\xc8!\x0e$\xa6jD\xf9\xd4\xa4\xfc[d\x02&\
+\xe79\xad\xea\x8aq\x15\xd0k\x9c4\xbc*~\x0bX\xb6u?\xbb\xa9]U\xd1b\x94OZ\x13\
+\x00\xad\x03"{ \xe03\x98C8<#\xf1@\x00\xad\x1a\xac\xfa\xd6dvQ)m\xc5e\xc3v\x01\
+\x88\xf4s\xa8]\xc6&\xc0\x15\xfd\xffM\xfe\x02\x1c\xdeoJ\xc0]$\xb0\x00\x00\x00\
+\x00IEND\xaeB`\x82' 
 
 def getRefreshBitmap():
     return BitmapFromImage(getRefreshImage())
@@ -324,47 +167,23 @@ def getRefreshIcon():
     icon.CopyFromBitmap(getRefreshBitmap())
     return icon
 
-#----------------------------------------------------------------------
-def getSaveData():
-    return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\x8bIDATH\x89\xed\x95\xd1\n\x80 \x0cE\xb7\xe9C\x9f\xed\x0fT~\xae\x0f\x95\
-=\x84 6W\x86\x12F\x17\x860\xe4\x1e\xa7S\x11IAKQS\xf7O\x004\x97\xf4\xdb\xea\
-\x9f\x98!)Ls\xd9\n\x8c9F\xb781\xe2\xb9\xf34\x9e\x16Ve\x8b\x02\x80S\x1f\x00I\
-\xfd\x03\xd86\r2\x06`\xd0\x83h \xed\xff%\xe0\x8e\xc1\x95\xaa\x00\x9atQ|\xd1$\
-\xf5\xdfE\x80\xa4\xd8\x00\x00_\x1a\xd6Z\x9f\xfad\x0f\x19I!\xf7x\x15\x17\xf0\
-\x7f\x99\xaf\x03v~a?\xc4\xad\x0bS\xb7\x00\x00\x00\x00IEND\xaeB`\x82' 
-
-def getSaveBitmap():
-    return BitmapFromImage(getSaveImage())
-
-def getSaveImage():
-    stream = cStringIO.StringIO(getSaveData())
-    return ImageFromStream(stream)
-
-def getSaveIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getSaveBitmap())
-    return icon
-
 #----------------------------------------------------------------------
 def getTestData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x17\x08\x06\
-\x00\x00\x00\x11!\x8f-\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x01\x1eIDATH\x89\xb5UK\x92\xc2 \x10}\r.r\x19G\x16.<N\xae0z\x8eh\x8e\x90\xe3\
-\xb8\x98\x05:\x97q\xe1\x0c.\xc6P|\x1a\xe8L)UTB\xa7y\x1f\x1a\x08\x91\xd2xgSoE\
-\x07\xb0\x92$\xb9\xdf\x1f\x97\xc6Hi\x92\xcc\xa5\xda\x12q\xc0K\x89X\x07\x9b\
-\x8f\xb5\x07\xb6\xd6V\t\xe6\xdc\xcb\xf5\x9b\'"\xa5\xa3n\x8cq\xb7;|\x07\xca=\
-\xcc3\xc6\xb8\x14\x8b\x94~m\x91O\xc7!_\xd2\x9a\xfa\x9a\x0b.\x8fs\xf1\xf2m\
-\x9a\xb9h\xa9\x0f\x1d\xa4\xef\x12\x17M\x07\xdds\x9f\xdd\xee\xf1\xb3\xab\x9c\
-\xa0\xd0\x85O\xb3\xd6\x16\'\xcd\xa0\xe1\xb8[\x95H\xe2m-\xaaA\nTS\x9f6q\x91g\
-\xd0%\xe0\x11\x81\xe4n\x91\x80\x8f\xe3\x18\x8d\xc5z\xc2:\xb4\x88>\xf7\x07/6Z\
-\xa2\x92\x0b\xae\xc8\\K\xd5g\x04\x12\xf0V<T\xcf\x12\x84.J \xdcwN=P\xa8\x01)M\
-\xa7\xe3\xe0v\xdb\t\x00p\xfe\xca\xaf\xec\xdd\xd6<\x81{\x1fK\xd5\x03\x8d\x1f\
-\x0e\xf0w*\xa7i\xca\xe2}_\x07\x16\x13\x84Di\xac\x06\xbc\x98\xe0\xbf\xed\x01\
-\xadi\xbd5g\xc8u\x0e\x00\x00\x00\x00IEND\xaeB`\x82' 
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x01"IDATH\x89\xb5VK\x92\xc2 \x10}\r.r\x19\x1d\x16.<N\xae\xa0\x9eC\xcd\x11r\
+\x9cY\xcc\x82\x19/\xe3\xc2\x19\\h(>\rt\xa6\x0cUT\x92N\xf3>4\x90\x10)\x8d%\
+\x9bZ\x14\x1d\xc0J\x92\xe4\xfe~]\x1a#\xa5I2\x96jS\xc4\x01\xcf%b\x1d|l\xd6\
+\x1e\xd8Z[%\x98r\xbf\x7f\xae<\x11)\x1duc\x8c\xbb\xdd\xe1;P\xeea\x9e1\xc6\xa5\
+X\xa4\xf4{\x8b|9\x9f\xf2)\xad\xa9\xaf\xb9\xe0\xf28\x17o_\xa6\x99\x8b\x96\xfa\
+\xd0Az/q\xd1t\xd0\xbd\xd6\xd9\xed\x1e_\xbb\xca\x0e\n]\xf84kmq\xd0\x04\x1a>w\
+\xab\x12I\xbc\xacE5H\x81j\xea\xd3&.\xf2\x04:\x07<"\x90\x9c-\x12\xf0a\x18\xa2\
+g\xb1\x9e\xb0\x0e-\xa2\xfd\xe1\xe8\xc5FSTr\xc1\x15\x99k\xa9\xfa\x8c@\x02\xde\
+\x8a\x87\xeaY\x82\xd0E\t\x84{\xcf\xa9\x07\n5 \xa5\xe9r>\xb9\xddv\x04\x00|~\
+\xe5G\xf6nk^\xc0\xbd\x8f\xa5\xea\x81\xc6\x07\x07x\xee\xcaq\x1c\xb3x\xdf\xd7\
+\x81\xc5\x04!Q\x1a\xab\x01\xcf&\xf8o[\xfc\xaf\xe2\x01cx\xbd7\x02\x98\x02\xd0\
+\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getTestBitmap():
     return BitmapFromImage(getTestImage())
@@ -653,11 +472,10 @@ def getToolGaugeData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x0e\x08\x02\
 \x00\x00\x00\xba\x9aK)\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\x00\
-\x00XIDAT(\x91c\x9c2u\n\x03U\x00U\x0c\xfa\xff\xff?\x0b\x9c\x85)\xcd\xc8\xc8x\
+\x00TIDAT(\x91c\x9c2u\n\x03U\x00U\x0c\xfa\xff\xff?\x0b\x9c\x85)\xcd\xc8\xc8x\
 \xf5\xdaU"\xcdb\x81\xb3\xde\xbf~O\x89\xa3\x98pIl\xdb\xbd\x8d:\x06\x91\nF\r"\
-\x0cX\x909\xa4\xc6\x14\x16\x83\x18\x19\x19)r\x0f\xdc \xe2S0>\x83\xfe\xff\xff\
-O\xa1)\x0c\x0c\x0c\x00U\xa6\x18\xb48\xff\xd0\x00\x00\x00\x00\x00IEND\xaeB`\
-\x82' 
+\x0cX\x909\xa4\xc6\x14\x16\x83\x18\x19\x19)r\x0f\xdc \xe2S0>\x83\xb0\xe6\x0f\
+R\x01\x00U\xa6\x18\xb4\x82\x95pI\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getToolGaugeBitmap():
     return BitmapFromImage(getToolGaugeImage())
@@ -830,6 +648,119 @@ def getToolMenuItemIcon():
     icon.CopyFromBitmap(getToolMenuItemBitmap())
     return icon
 
+#----------------------------------------------------------------------
+def getToolMoveDownData():
+    return \
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00\xfcIDATH\x89\xb5VA\x12\x83 \x0c\xdc\x84~\xabm~f\xf9\x99m\xdf\xa5\xe9\
+\x05\xa64F\x01\xab\x99\xc98\x82d\xd9d\t\x12q\xc0\x99\xc6v@\xe7IO\x05\x00\x80\
+\xfb\xedz\x18\xc8\xa5\xf6\x81\xc7\x888P+\x80\xcb\xc0\x0b\x98\x1d\xe8c\xe82\
+\x18\xc7\x11\x006\x83\xcc\x89\x19W\xd8\xb8\x00"b\xc1v\x03\xad\xd6\xe0\xf9z\
+\xe7\x05\xea\xd5!\xa6\xe7P\x00y \xd5"\x13\x07\xf2r\x1es\xb0\x04>\xac\x81\x10\
+\x87\x1f\x07\xa0"\xa2v\xbc\xe6\x0f@\x15X\xac;\\\xa6\x96\xc5a2\x8d=En\x91i\
+\xab\xfd-\xd3]\x00@]\xa6\xadV\xad\x01q \x11\x81\x88@Q\xcf[\xb4\x03\xad2\xd5$\
+CO\x8a\xe5|\xb7L\x81o;\x00\x96-\xa1\x9c[\xec\x1e\r\'y6\xf9\xb7\xefepO\xaaM\
+\x0c\xb6,\xef\xba\xeb\x1c\x94\xc6\x1c\xc8\xa6h(\xd3Ri\xd7d/}\x9d\'\xf5Z\xc1V\
+\x1d67\xb8@\\Y\xdc\x13\xf4\'\xde\xd9\xbf-\x1f\x95\xdb\x82J\xbd\xd8\x18k\x00\
+\x00\x00\x00IEND\xaeB`\x82' 
+
+def getToolMoveDownBitmap():
+    return BitmapFromImage(getToolMoveDownImage())
+
+def getToolMoveDownImage():
+    stream = cStringIO.StringIO(getToolMoveDownData())
+    return ImageFromStream(stream)
+
+def getToolMoveDownIcon():
+    icon = EmptyIcon()
+    icon.CopyFromBitmap(getToolMoveDownBitmap())
+    return icon
+
+#----------------------------------------------------------------------
+def getToolMoveLeftData():
+    return \
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00\xceIDATH\x89\xb5\x96\xe1\x0e\x83 \x0c\x84\xafe\xaf\xa5\xb27\xef\xb6\xe7\
+\x1a\xf8G\x17GZ-\x02\x97\x98\x184|\xbd\xf6\x8c\x10q\xc0Hq\xb9\x90\xd37\x0f\
+\x05\x00\xc02O\xdd \x8f\xab\x174G\xc4\x81\xbc\x00\xd5\x81\xb6\xe1~\x01u\x0eU\
+\x07"\x02\x00]\xda\xa4\x02b\x8c%\xac/\x00\x00^\xef\xcf\xde\xe7\xdc\x92\xac\
+\xcb!\x13\x07Z\xe6)\x8b\xc8\x9f\xb3n\x00\xe0\xe7&\x1f\xee\xfb\x024y\xe3\xeb\
+\x8a\xa9%O|\xab\x1c\xdc\x89\xaf\x1b\xb0\x0f\xbb\x80\xb5\x03\xd2\xd6k\xe6@\
+\xc5\x80]\xf1=\x05\x1c7\xd7\xd6\x9f\x8e\xd8\x9a\x80t\xa8.\x19\x95z"{;E\xa5+K\
+\xa6\x03\xe6@V\x8b\xaa\n9}\xb8ml\xb5\xc8\xa3\xcb\x14\xb5T\x0f4~\xc9\xb7\x005\
+\xbfC\x8fh\xf4\xb1e\x05\xe0\xd1V\xfd\x0e\xdbmz\x00\x00\x00\x00IEND\xaeB`\x82\
+' 
+
+def getToolMoveLeftBitmap():
+    return BitmapFromImage(getToolMoveLeftImage())
+
+def getToolMoveLeftImage():
+    stream = cStringIO.StringIO(getToolMoveLeftData())
+    return ImageFromStream(stream)
+
+def getToolMoveLeftIcon():
+    icon = EmptyIcon()
+    icon.CopyFromBitmap(getToolMoveLeftBitmap())
+    return icon
+
+#----------------------------------------------------------------------
+def getToolMoveRightData():
+    return \
+"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00\xd3IDATH\x89\xed\x96a\x0e\xc2 \x0c\x85_\x8b\xd7\xda\x867s'\xb3n\xe7r\
+\xf5\x0f\x18F0+\x0c\xfd\xe5KH\x06\t\xfdxm\xd3\x8c\x88\x1dR\xe9\xf6TbG\xe8$.\
+\x1dN\xe3\xa0)0_\xa7\x01\xb9\x88\x1d\xc5\x95?\xe0H\x97\xd2\xa1\x88\x00@\xd5K\
+\xab\x00\xde\xfb\x1c\xd6\x17\x00\x00\x8fe\x8d\x85\xae\xce\xbb\t\x10E\xech\
+\x1a\x07\x15\x91\x9d\xb3n\x00\xe0\xedF\x93o\x94\\\x95\xda\xdb\xd4E\x9fd\xe9.\
+\x93\x83\xa8\x96\xee2; v\xa4!zM-\xcc\x0e\xb6$\xe7w\x11\x10\xcauh\x02l\x85@\n\
+\xe0jpb\x02p(b\x04\xc5=\x96\xf5\xf8\xae\x05pF_\x07\x1c\xa6(-\xe4\xdc\x00\xa8\
+\x1a\xd73;\xba\xe1?\xae\x83~>\xae\xbb\x01\xc2d\xdc\x05L\xdcT\x8b\xf2\xdf\x96\
+\xdez\x01\x15\x93n\xa3D\xe4_\xf7\x00\x00\x00\x00IEND\xaeB`\x82" 
+
+def getToolMoveRightBitmap():
+    return BitmapFromImage(getToolMoveRightImage())
+
+def getToolMoveRightImage():
+    stream = cStringIO.StringIO(getToolMoveRightData())
+    return ImageFromStream(stream)
+
+def getToolMoveRightIcon():
+    icon = EmptyIcon()
+    icon.CopyFromBitmap(getToolMoveRightBitmap())
+    return icon
+
+#----------------------------------------------------------------------
+def getToolMoveUpData():
+    return \
+"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\
+\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00\xf1IDATH\x89\xd5\x96A\x12\x83 \x0cE\x7fB\xaf\xd5\xca\xcd\x1cnf\xdbs\t]\
+\xb4Li$\x01\x1c]43\xd9(\xfe\x97\x84\x0f#\x11;\x9c\x19|\xaa\xba\x04\xa4\xb8&m\
+a\x8ck\x8a\xc6\xfb.\x00\x00L\xb7\xebF$\x0b3;\x1a\x05\\Z\x0b\xca\xaae\x07=@s\
+\x0fZ#\xe9\x19\x9b\t\x90\x152;*\xb3\xa7\x90\xa6\x8b,!fG\xa1\x01\xe9\xb2\xa95\
+\xebP@\xe6\n\xc4\x04\xa4\xb8\xa6\x9c\x04@\xa3\x84O\x01s\xad8\x0b\x00\x00\xc4\
+\x8er\x02u\x1b[\xb1\xb1\xe9\xb2,\x000|\xa0\xba\x01\xde{\t;\x16\x00\x00\xf7\
+\xc73\x8f;Y\xd7\xc7n@\x0ebG#3\x0f\x95g\xcd\xab\xa2\xe8F\r\xeb\xa0\x99\x80\
+\xdaxH9x\x01_\xbb\x96\xb1\xcb\xa6\xf2\x0e\xd2\xc4\xab\x1d\x8c\xd84\xcf\\\x13\
+\xdf\x00\xe4\xa6j6\xed\x11.E\xd5\xc4\xbb\x93\x9f\xf4\xde'\xeb\x1b\x99\x87\
+\xda\xb4\xaa\xf1\xf7\x7f\x15/\xe4\x0f\x81\xb3\xb0\xca}\xd2\x00\x00\x00\x00IE\
+ND\xaeB`\x82" 
+
+def getToolMoveUpBitmap():
+    return BitmapFromImage(getToolMoveUpImage())
+
+def getToolMoveUpImage():
+    stream = cStringIO.StringIO(getToolMoveUpData())
+    return ImageFromStream(stream)
+
+def getToolMoveUpIcon():
+    icon = EmptyIcon()
+    icon.CopyFromBitmap(getToolMoveUpBitmap())
+    return icon
+
 #----------------------------------------------------------------------
 def getToolNotebookData():
     return \
@@ -913,13 +844,13 @@ def getToolRadioButtonData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x0b\x00\x00\x00\x0b\x08\x06\
 \x00\x00\x00\xa9\xacw&\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\x98IDAT\x18\x95m\x8f\xc1\r\xc20\x0cE\x9f\x1d\x06\xe8\x81)\xe8\x06\x91:V\
-\xc5\x08P\xb2\x15\xa8\xdd\xa0L\xd1C\x06\x00\xc2\xa1\xa4J\x83\xbfd\xc5N\xde\
-\xb7~\x10u\xd4\x15\x86\x90\xac{\xa5\xd2\xedrM\xe5YJ-\xb0?\xf7X\x06\xb5\xc0\
-\xf99\x9b\x06\xb5@\xc04H\x18\xc2\x1fX\xaa=\xb5\x84!\x00 \xa2\x8e\xcf\xfb\x95\
-\x00\xa6\xc7Dsl60.\x11\xdf\xf95\x82;\x88\xe6\x06\xc0w\x9e\xb8D\x13\\W\xab\
-\xdb*\xfd4\xde\xc7\xdc\xa6\xf2]D\xdd.c\x8e\xb4\xdb\x98\xe7\xfaC\x19\xa8A\x80\
-/\x17\xa5W:\x12\xac\xa3\xbe\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x00\x96IDAT\x18\x95m\x90\xc1\r\xc20\x10\x04\xc7g\n\xc8\x83*H\x07\x96RVD\t`\
+\xdc\x15(\xe9 T\x91\x87\x0b\x00\xcc#1\xb2\xcd\xadd\xf9t\x9a=\xad\x16#\x96\
+\xf6\x05\x1f\x92\xb6\x17\x1a\xdd.\xd7T\xfe\xa5D\x03\xc7\xf3\x88f\x10\r\\\x9e\
+\x8bj\x10\r\x04T\x83\t>\xfc\x81\xa5\xfaSO\xf0\x01\x00c\xc4\xf2y\xbf\x12\xc0\
+\xfc\x98\xe9\x8e\xdd\x0f\x8ck\xc4\rn\x8b`\x0fF\xf2\x00\xe0\x06G\\\xa3\nn\xa7\
+\x8b\x1e\xd3\xae\xe9>\xe5\xb1\xee\xdb\x88\xad2\xe6H\xd5E\xad\xe7\x12hA\x80/\
+\x17\xa5W:+\xbbb\xd2\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getToolRadioButtonBitmap():
     return BitmapFromImage(getToolRadioButtonImage())
@@ -936,13 +867,13 @@ def getToolRadioButtonIcon():
 #----------------------------------------------------------------------
 def getToolRootData():
     return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
 \x00\x00\x00&/\x9c\x8a\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00cIDAT(\x91\xed\x90\xc1\x0e\x800\x08C[\xf0\x97T\xfe\xff\xa6~\x93n\xb7e.`\
-\xa6\xbb\xda\x84\x03\xa4m\xf2 E1\xa2\xc9;\xa6\xebL\xf5NQ\x86\x05\xeb2\xdf\
-\xcc\xdb~\x84fW\x14\x85\x99%\x8a\xe2\xcb\xb8\x08\x1eF\x84T\nj\x947\x18\xa5\
-\xa0\r==\xce-h\xf5#\xf4#\x90\xa2\xbd^W2\x94\x06\x90\x01\x0f\xb3'\x06\xe8\x11\
-R\xf1\x00\x00\x00\x00IEND\xaeB`\x82" 
+\x00aIDAT(\x91\xed\x93\xc1\n\x80@\x08Dg\xb4_\xaa\xfc\xff[\xf5M\xb5\xdd\x96m\
+\xd1\xa8\xbc6\xe0A\x19\x07\x9e )\x8a\x8c\x06oX\x8e\xbd\xb4=E\x19\x06\xcc\xd3\
+x1/\xeb\x16\x9a]Q\x14fV(\x8a/\xe5"x\x18\x11R\rhQ\xde`\xd4\x80~\xe9\xeepn@\
+\xaf\x1f\xe19\x02\xb3\xbf \xa9m\x00\'\x0f\xb3\'\x06(\x95\x90F\x00\x00\x00\
+\x00IEND\xaeB`\x82' 
 
 def getToolRootBitmap():
     return BitmapFromImage(getToolRootImage())
@@ -988,8 +919,8 @@ def getToolSeparatorData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x0e\x00\x00\x00\x02\x08\x02\
 \x00\x00\x00\xe7\xe8z\xfd\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\
-\x00\x00\x17IDAT\x18\x95c\x9c2u\n\x03\x11 ;+\x9b\x05B\x11\xa3\x1a\x00\xfb\
-\x1c\x04C\xb1\x8cE\xa0\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x00\x00\x17IDAT\x08\x99c\x9c2u\n\x03\x11 ;+\x9b\x05B\x11\xa3\x1a\x00\xfb\
+\x1c\x04CU\x1cv\xec\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getToolSeparatorBitmap():
     return BitmapFromImage(getToolSeparatorImage())
@@ -1123,28 +1054,28 @@ def getToolSplitterWindowIcon():
 #----------------------------------------------------------------------
 def getToolStaticBitmapData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x0e\x00\x00\x00\x11\x08\x06\
+"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x0e\x00\x00\x00\x11\x08\x06\
 \x00\x00\x00\xed\xc8\x9d\x9f\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\
-\x00\x00\x01\xf7IDAT(\x91\x85\x921h\x13Q\x18\xc7\x7fw\xf7\x86\x17p\xb8\x83\
-\x0c\x97-\x05\x1dts\xb3N\x9et\x90\xe0`[\\\\\x9c:X\xe9PN\xa7\xea\x16\x10\x95\
-\x0ejq\x10\xb2\x08\xe9Rt\xd0:\xf6:\x14\x13P\x92.\xd6\x82C\xb3\x14\x92A\x92S\
-\x03\xf7\xc0k?\x87pgC\xab\xfdO\xef}\xef\xfd\xbe\xef}\xff\xefY\x96\xedpT\x87\
-\x07\xa9p\x82lGYc\xfb\xa3@\x06%\xbf\x12\xda\x9f\xdb\x0c\x06\x83\x7f&\xb4,\
-\xdb\xc9\x83\x8d\xad\x06o\xd7j,-\x9eG\xab\x02f\x98\xd0\xf8\x12\xb3\xfa~\x9b\
-\xfa\xeb\x0fc\x95s\xb0\xb1\xd5\xa0\xe4k\\"<\xff2\xe0\x82i\x92\xa4\x86\xf8\
-\xfb\x80{\x8fv\xa9\xaf\xd6s\xd8\xce\xaa-\xbfX\xc6W\x11^\xf1*\xa8\tP\x1e\x9c\
-\xa9PP\x1a\xd7\xf5X\x9a+1;=\x9b?Ue\x8bp\xae\x02\x1a\xd0\xa5Q 5\x00$\xa9\xa6\
-\xa0\x0c^Q\xe3z:\xef77\xc7\x18\x93_\x06\r\xca%1#s\x124(M\xc9\xcd\xce\xc1\xce\
-\x9a\xad>\x7f\x03i\x02\x18Hc0\x1dH\xbb\xa3d\xa9\xc1\xc41\xf5\xb5\xe8\xf88j\
-\xafj\x98\x94\x11\xac4\x89\xe9\x001\xa4\x86^\xafKg\x7f@\xf5\xf1JnN\xde\xa3\
-\xd6\x1am\x0cP \x19v \x8d1f@\xb7\xd7\xc3\x0c\x13\xaa/w\x896k\xe3\xe6\xd8\x8e\
-\xb2\xee\xdc\xbd-\xdb\xcd\x88\x89sMV\x1e\x06\xc4qLg\xbf\xcb\x83\'\x11^\xf1\
-\x02\xd1fcl\x8eX\xb6\x83e;\xa0\x90\x99\x9b\x15\xd9\xf9\xba#\xadO\x1f\xa5r=\
-\x90p\xe1\x96\xec}\xdb\x93L\xd9]\xcbv\xfe\x8237*""\xd2j\xb7$\x98\n$\xbc\x1fJ\
-\xbf\xdf?\x06\x8c\x81\xbe\xef\xcbF\xb4!\x95k\x81\xac<{*\xf3\x0b\xf3\xe2\x16\
-\xdd\x13\x811\x10\x90`jR\xd6\xdf\xad\x8f*^\t\xa4|\xb6|:\x98\xc1\xe5\xb2/\x93\
-\x97.J\xb8\x18\xfe\x17\xb2lg\xf4\xc9\x01\xe4\xf0@|\xdf\xc5\x18\xc3\x8f\x9f\
-\xbf-N\xd1\x1f(\xba\xfe\xd4\xf5\xbb\xa30\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x00\x00\x01\xf9IDAT(\x91\x85\x931h\x13Q\x18\xc7\x7fw\xf7\x86\x17p\xb8\x83\
+\x0c\x97-\x05\x1dts\xb3N\x9et\x90\xe0\xa0-..N\x1d\xact(\xd1\xa9\xba\x05D\xa5\
+\x83Z\x1c\x84,B\xba\x14\x1d\xb4\x8e\xbd\x0e\xc5\x04\x94\xa4\x8b\xb5\xe0\xd0,\
+\x85d\x90\xe4\xd4\xc0=\xf0\xda\xcf!\xdc\xd9\xa3Q\xbf\xe9\xbd\xef}\xbf\xef{\
+\xdf\xff{\xcf\xb2l\x87\xe3vt\x98\x08\x13\xccv\x94\x95\xdb\x1f\x07R(\xfe\x19\
+\xd3\xf9\xd4a8\x1c\xfe5\xa1e\xd9N\xe6ln7y\xb3^gy\xe9,Z\x150\xa3\x98\xe6\xe7\
+\x88\xb5w;4^\xbd\xcfU\xce\xc0\xe6v\x93\x92\xafq\t\xf1\xfc\x8b\x80\x0b\xa6E\
+\x9c\x18\xa2oC\xee>\xdc\xa3\xb1\xd6\xc8`;\xad\xb6\xf2|\x05_\x85x\xc5\xcb\xa0\
+\xa6@yp\xaaBAi\\\xd7cy\xbe\xc4\xdc\xf5\xb9\xec\xaa*]T\xe7+\xa0\x01]\x1a;\x12\
+\x03@\x9ch\n\xca\xe0\x155\xae\xa7\xb3~3q\x8c1Y0hP.\xb1\x19\x8b\x13\xa3AiJnz\
+\x0ev\xdal\xed\xd9kHb\xc0@\x12\x81\xe9B\xd2\x1b'K\x0c&\x8ah\xac\x87'\xc7Q\
+\x7fY\xc7$\x8ca\xa5\x89M\x17\x88 1\xf4\xfb=\xba\x07Cj\x8fV3q\xb2\x1e\xb5\xd6\
+hc\x80\x02\xf1\xa8\x0bI\x841Cz\xfd>f\x14S{\xb1G\xb8U\xcf\x8bc;\xca\xba}\xe7\
+\x96\xec\xb4B\xa6\xce\xb4X}\x10\x10E\x11\xdd\x83\x1e\xf7\x1f\x87x\xc5s\x84[\
+\xcd\xdc\x1c\xb1l\x07\xcbv@!\xb37*\xb2\xfbeW\xda\x1f?H\xe5j \xd5\xc5\x9b\xb2\
+\xffu_RKc-\xdb\xf9\x03\xce^\xab\x88\x88H\xbb\xd3\x96`&\x90\xea\xbd\xaa\x0c\
+\x06\x83\x13@\x0e\xf4}_6\xc3M\xa9\\\td\xf5\xe9\x13YX\\\x10\xb7\xe8N\x04r  \
+\xc1\xcc\xb4l\xbc\xdd\x18W\xbc\x14H\xf9t\xf9\xff`\n\x97\xcb\xbeL_8/\xd5\xa5\
+\xea?!\xcbv\xc6\x8f\x1c@\x8e\x0e\xc5\xf7]\x8c1|\xff\xf1+\xf7\xf7&\xd9o(\xba\
+\xfe\xd4S\x004\x8f\x00\x00\x00\x00IEND\xaeB`\x82" 
 
 def getToolStaticBitmapBitmap():
     return BitmapFromImage(getToolStaticBitmapImage())
@@ -1211,8 +1142,8 @@ def getToolStaticLineData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x14\x00\x00\x00\x02\x08\x02\
 \x00\x00\x00\xd7dk\xdc\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\x00\
-\x00\x17IDAT\x18\x95c\x9c2u\n\x03Y ;+\x9b\x05B\x91\xa7\x1f\x00gO\x04C\xda+\
-\x0c\xd5\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x00\x17IDAT\x08\x99c\x9c2u\n\x03Y ;+\x9b\x05B\x91\xa7\x1f\x00gO\x04C>\xbb?\
+\x99\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getToolStaticLineBitmap():
     return BitmapFromImage(getToolStaticLineImage())
@@ -1275,9 +1206,9 @@ def getToolToolData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\t\x00\x00\x00\t\x08\x02\x00\
 \x00\x00o\xf3\x91G\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\x00\x00>\
-IDAT\x18\x95c\xfc\xf1\xe7\x07\x036\xc0\xc1\xc2\xc1\xc2\xc0\xc0p\xe3\xc6\r4\
+IDAT\x08\x99c\xfc\xf1\xe7\x07\x036\xc0\xc1\xc2\xc1\xc2\xc0\xc0p\xe3\xc6\r4\
 \x89\x03\x07\x0e0000a\xd5\x04\x01,hj\x19\x18\x18\x1c\x1c\x1c \x0c|\xfa\x883\
-\x13n\x14\x8a\x1c\xdc&\x12\x00\x00b\xc7\r\xe0\xb7\\uG\x00\x00\x00\x00IEND\
+\x13n\x14\x8a\x1c\xdc&\x12\x00\x00b\xc7\r\xe0y\xf1\x04O\x00\x00\x00\x00IEND\
 \xaeB`\x82' 
 
 def getToolToolBitmap():
@@ -1319,13 +1250,13 @@ def getToolToolBarIcon():
 #----------------------------------------------------------------------
 def getToolTreeCtrlData():
     return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
 \x00\x00\x00&/\x9c\x8a\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00cIDAT(\x91\xed\x90\xc1\x0e\x800\x08C[\xf0\x97T\xfe\xff\xa6~\x93n\xb7e.`\
-\xa6\xbb\xda\x84\x03\xa4m\xf2 E1\xa2\xc9;\xa6\xebL\xf5NQ\x86\x05\xeb2\xdf\
-\xcc\xdb~\x84fW\x14\x85\x99%\x8a\xe2\xcb\xb8\x08\x1eF\x84T\nj\x947\x18\xa5\
-\xa0\r==\xce-h\xf5#\xf4#\x90\xa2\xbd^W2\x94\x06\x90\x01\x0f\xb3'\x06\xe8\x11\
-R\xf1\x00\x00\x00\x00IEND\xaeB`\x82" 
+\x00aIDAT(\x91\xed\x93\xc1\n\x80@\x08Dg\xb4_\xaa\xfc\xff[\xf5M\xb5\xdd\x96m\
+\xd1\xa8\xbc6\xe0A\x19\x07\x9e )\x8a\x8c\x06oX\x8e\xbd\xb4=E\x19\x06\xcc\xd3\
+x1/\xeb\x16\x9a]Q\x14fV(\x8a/\xe5"x\x18\x11R\rhQ\xde`\xd4\x80~\xe9\xeepn@\
+\xaf\x1f\xe19\x02\xb3\xbf \xa9m\x00\'\x0f\xb3\'\x06(\x95\x90F\x00\x00\x00\
+\x00IEND\xaeB`\x82' 
 
 def getToolTreeCtrlBitmap():
     return BitmapFromImage(getToolTreeCtrlImage())
@@ -1361,6 +1292,27 @@ def getToolUnknownIcon():
     icon.CopyFromBitmap(getToolUnknownBitmap())
     return icon
 
+#----------------------------------------------------------------------
+def getTreeCommentData():
+    return \
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
+\x00\x00\x00&/\x9c\x8a\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
+\x00AIDAT(\x91cddbf\xa0\x040Q\xa4\x9bf\x06\xfc\xff\xf7\xf7\xff\xff\x7f\x7f\
+\xff\xa3\xb3\xe9\xe7\x02R\x00#z,\xe0s.#\x133#A\x17 +\xc2\xc5\xc6k\x00\xa9`\
+\x18x\x81\xfaa@*\x00\x00\xb0\xac\x18?Q\xffAR\x00\x00\x00\x00IEND\xaeB`\x82' 
+
+def getTreeCommentBitmap():
+    return BitmapFromImage(getTreeCommentImage())
+
+def getTreeCommentImage():
+    stream = cStringIO.StringIO(getTreeCommentData())
+    return ImageFromStream(stream)
+
+def getTreeCommentIcon():
+    icon = EmptyIcon()
+    icon.CopyFromBitmap(getTreeCommentBitmap())
+    return icon
+
 #----------------------------------------------------------------------
 def getTreeDefaultData():
     return \
@@ -1520,13 +1472,13 @@ def getTreePanelIcon():
 #----------------------------------------------------------------------
 def getTreeRootData():
     return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0e\x08\x06\
 \x00\x00\x00&/\x9c\x8a\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00cIDAT(\x91\xed\x90\xc1\x0e\x800\x08C[\xf0\x97T\xfe\xff\xa6~\x93n\xb7e.`\
-\xa6\xbb\xda\x84\x03\xa4m\xf2 E1\xa2\xc9;\xa6\xebL\xf5NQ\x86\x05\xeb2\xdf\
-\xcc\xdb~\x84fW\x14\x85\x99%\x8a\xe2\xcb\xb8\x08\x1eF\x84T\nj\x947\x18\xa5\
-\xa0\r==\xce-h\xf5#\xf4#\x90\xa2\xbd^W2\x94\x06\x90\x01\x0f\xb3'\x06\xe8\x11\
-R\xf1\x00\x00\x00\x00IEND\xaeB`\x82" 
+\x00aIDAT(\x91\xed\x93\xc1\n\x80@\x08Dg\xb4_\xaa\xfc\xff[\xf5M\xb5\xdd\x96m\
+\xd1\xa8\xbc6\xe0A\x19\x07\x9e )\x8a\x8c\x06oX\x8e\xbd\xb4=E\x19\x06\xcc\xd3\
+x1/\xeb\x16\x9a]Q\x14fV(\x8a/\xe5"x\x18\x11R\rhQ\xde`\xd4\x80~\xe9\xeepn@\
+\xaf\x1f\xe19\x02\xb3\xbf \xa9m\x00\'\x0f\xb3\'\x06(\x95\x90F\x00\x00\x00\
+\x00IEND\xaeB`\x82' 
 
 def getTreeRootBitmap():
     return BitmapFromImage(getTreeRootImage())
@@ -1763,29 +1715,3 @@ def getTreeToolBarIcon():
     icon.CopyFromBitmap(getTreeToolBarBitmap())
     return icon
 
-#----------------------------------------------------------------------
-def getUndoData():
-    return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x17\x00\x00\x00\x16\x08\x06\
-\x00\x00\x00+v\x07\x05\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x00\xb0IDAT8\x8d\xed\x94\xb1\r\xc20\x14D\x9f\xed\x14\xd0Q2\x02\x030\x00s\
-\xb0\x06\xa2\xcc\x04(;QPf\x10\x97t\xb8H\xf2)P"\x04&\xb6\x1c,\xa5\xc8InN\xf6;\
-\xe9\xfbl\xa5\xb4!\x97t6\xf2\x02O\x86K\xd7J\x16\xf8\x140@1\x06\xbe\x1c\xb6\
-\xb8\x06\xca\x9b\x1dB\x946*\x16\xae|=\xef\xc1\xebb\xc5\xa3q\x00\xb8\x06\xee\
-\x0e\xaa\xdaF\x87x\xe1\xef\x01\x00\xe7\xab\x1d\xfc\xd3\xfe\xe5U\xb5\r\x07(m~\
-.@\x00\xf9\xf4\x8e\xbb\xcd\x97\xef=\x1f\xdc\xe0\x81D\x07\xa4\xfe-}\x93\xc6F3\
-\xdf\x17\x1a\xba\xd0$\xb8t\xadL\xaa\xe2?4\xdf\x99/\xf0$=\x01\xf3\xa3=5\x1b-\
-\xa8R\x00\x00\x00\x00IEND\xaeB`\x82' 
-
-def getUndoBitmap():
-    return BitmapFromImage(getUndoImage())
-
-def getUndoImage():
-    stream = cStringIO.StringIO(getUndoData())
-    return ImageFromStream(stream)
-
-def getUndoIcon():
-    icon = EmptyIcon()
-    icon.CopyFromBitmap(getUndoBitmap())
-    return icon
-