]> git.saurik.com Git - wxWidgets.git/commitdiff
final touch for icons - transparency handled by ArtProvider
authorRoman Rolinsky <rolinsky@femagsoft.com>
Wed, 9 May 2007 03:24:30 +0000 (03:24 +0000)
committerRoman Rolinsky <rolinsky@femagsoft.com>
Wed, 9 May 2007 03:24:30 +0000 (03:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/wx/tools/XRCed/images.py
wxPython/wx/tools/XRCed/src-images/Copy.png
wxPython/wx/tools/XRCed/src-images/Locate.png
wxPython/wx/tools/XRCed/src-images/MoveDown.png
wxPython/wx/tools/XRCed/src-images/MoveLeft.png
wxPython/wx/tools/XRCed/src-images/MoveRight.png
wxPython/wx/tools/XRCed/src-images/MoveUp.png
wxPython/wx/tools/XRCed/src-images/Paste.png
wxPython/wx/tools/XRCed/src-images/Test.png
wxPython/wx/tools/XRCed/xrced.py

index be5e3f9abe694f144035ccc0409e57cebc6b0251..f86f7017eeaeaf6575ea216097bb0dd799d502f3 100644 (file)
@@ -75,31 +75,31 @@ def getCopyData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x02hIDAT8\x8d\x95\x95\xcfO\x13A\x14\xc7\xbfof\xb7\xbf\x0e\xed\xad\x7fA\xdbm\
-\xfd?\x8c!\x9e<\x99x\xf4\xcc\x01\xa2` \x9eM\x00\x0b*\x89\x12C\xe2\xd9\x8bWO&\
-\x86@\x1b"AH\x80\xd6z\xc6\x03p\xb0DL\xb7\xd3\xce\xf30\xec\xb6S\xb7K\x99K\x9b\
-\xbe\xb7\x9f\xf9\xbc7o\xa7T}\xb5\xf2\x90\xb5.\xe3\x96\x8b\x84h>\x99\x99\xfb8\
-.\xee\xa8n\xd7{6\xb7x[.^\xbfY\xf5\xe2\xe2\x8e\x10\x04\x00h\xb7\x7fO\x0c\xcdf\
-s \xa2\xd8\x1c\'.\xc8\xcc\xd4\xedv\xe5\xc8oH$\x92`f\x9e\x18\xdcj\xfd\xb4\xa0\
-\xfb\x07{\x8f\xae\xae\xfe\x14\x00\x0cA\x08Df\x83\x97\xabKQ=$"\xfal\x81K\xa5b\
-\xf8\xdd\xf7}\xf9u\xebKa\xfe\xe9\x021s|\xdd6\x15\xd5\xb5\xe5\xa9\xb1\xc6\xaa\
-\xa7pmJ\x97\x97\xedI\xb9\xc8fs\x00\xc0c\x8d;\x9d\x0evj[\x13\x03\x01\xd3\x9e`\
-E\x18\x9b\xa0R]+\xb1\xd1h\xdc\x08-\x97+\xd1\xe0b\xb1\x00\xc3bc\\\xdf\x0ec\
-\xe5r\xf4;\x14l\xce\xcc\xd1\xc6\xcc\x8cV\xab\x15\x82\x95RVb\xb3\xd9\x8c\x84\
-\x0eR\x18\x95\xca\x9d\x018\x0803\n\x85!c\xdfG}w\'L\xacT\x06e\xda\x96&\x9f\
-\x88\xe2\x8cM\x8f\x99\x19J\xf5\xfe3\x1e\x06\x9a\xcf`\xd32\x98\x81d2i\x83\xb5\
-\xd6\xa1\xb1\x01\x03\xbe\xdf\xc1\xee\xb7Z\x98\xe8y^h7jL$\xe08\x12J)h\xad\x07\
-\xe0~\xbfo\x95\xc5l\x8f\x0e3\xe3\xe4$\x98\n;/\x93\xc9 \x97\xcb\x01\x00\xf2\
-\xf9|\xc8\x1a\x02\x07\xb0\xc0\x82,\xb0\xe7\x95, \xc0\x10BBJ\t\xad5\x84\x10\
-\x08\xaa\xbf><3\x01\xe9t:l\t\x11\xc1u\xdd\x91\xc3"\x10\r\xa6\xc0u]\x10\tc\
-\xe78\xe1\xe1\xd5\xea\xdb\xd0Z\xc3q\x13\x89\x1fo7\xd6#\x87\x94\x88\xc2\xcd\
-\x86m\x85\x10 \x12\xd0Z\xe3\xfd\xe6\xbb\xa8G\x0f\x9c\xb8\x7f\x81\xa5\x95\x17\
-\x0b\xa3\xfd\x0f\xcagf\xd3\x060\xa6\xee\xde\x07\x00\x9c_\x9ca\xff\xfb\x1e\
-\x98\xb0\x11{\x1f\x8f\xf6\xdfu\x1dHi\x1e1\xd6\x04)\xcdu}\xfa\xeb\x14G\xc7\
-\x87He2\xeb3\xd3\xb3\x9b7\x82\x95RH\xa5R\xd6++\xe5\xc0\xba\xdf\xd78\xbf8\xc3\
-\xd1\xf1! \xe8\xf1\xcc\xf4\xec\x07\x00\x88\xbdg\xabk\xcb\x9fz\xbd\xde\x03\
-\xc0\x1e\xbf`1\x18\x0ch\x01\xaai\xf0\xbd\xc5\xf9\xe7\x7f\x83\xd8?\xc6\x94\
-\x9d\nm\x8c\xaf\xa9\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x02jIDAT8\x8d\x95\x95\xcfO\x13A\x14\xc7\xbfof\xb7-=\xb4\xb7^\xb9\xb4t\xeb_\
+\xa1\x07\x13\x8dW\xff\x01\xefDK\x14\x8c\xc4\xb3\t`A1\xfe\x88\x1a\xfd3<\x99\
+\x10\x02%DR%\x01\xda\xd43\x1e\x80\x83\x10H\xba\x9dv\x9e\x87aw;u\xbb\x94\xb9\
+\xb4\xe9{\xfb\x99\xcf{\xf3vJ\xb5WK\x0fX\xeb\n\xae\xb9H\x88\xe6\xe3\xea\xec\
+\xd7QqGu\xbb\xde\xd3\xd9\xf9\xebr\xf1zu\xd9K\x8a;B\x10\x00\xe0\xf4\xf4\xef\
+\xd8\xd0\\.\x0f"J\xccq\x92\x82\xccL\xddnW\x0e\xfd\x86T*\rf\xe6\xb1\xc1\xed\
+\xf6o\x0b\xda\xf8\xb5s\xff\xe2\xe2|\x12\xc0\x00\x84@d6x\xb9\xbc\xf0(\x86ID\
+\xb4f\x81\xa7\xa6J\xe1w\xdf\xf7\xe5\xda\xfa\xf7\xc9\xb9\'\xcf\x88\x99\x93\
+\xeb\xb6\xa9\xa8\xad,\xde\x1ci\xacz\n\x97\xa6tvv:.\x17\xb9\\\x1e\x00x\xa4q\
+\xa7\xd3\xc1f}}l `\xda\x13\xac\x18c\x13T\xaak%6\x9b\xcd+\xa1\x9e\x17\xbd\x0e\
+\x16\xb8T*\xc2\xb0\xd8\x18om\x841\xcf\x8b\x1f\xdb`sf\x8e7ff\xb4\xdb\xed\x10\
+\xac\x94\xb2\x12[\xadV,4JaT*7"p\x10`f\x14\x8b\x03\xc6\xbe\x8f\xad\xed\xcd0\
+\xb1R\x89\xca\xb4-M>\x11%\x19\x9b\x1e33\x94\xea\xfdg<\x084\x9f\xc1\xa6\x1e\
+\x98\x81t:m\x83\xb5\xd6\xa1\xb1\x01\x03\xbe\xdf\xc1\xf6\x8fz\x98X.\x97C\xbba\
+c"\x01\xc7\x91PJAk\x1d\x81\xfb\xfd\xbeU\x16\xb3=:\xcc\x8c\x83\x83`*\xec\xbcl\
+6\x8b|>\x0f\x00(\x14\n!k\x00\x1c\xc0\x02\x0b\xb2\xc0\xe5\xf2\x94\x05\x04\x18\
+BHH)\xa1\xb5\x86\x10\x02A\xf5\x97\x87g&`bb"l\t\x11\xc1u\xdd\xa1\xc3"\x10ES\
+\xe0\xba.\x88\x84\xb1s\x9c\xf0\xf0\xea[\x1b\xd0Z\xc3qS\xa9\xd6\xbb\x0fob/z"\
+\n7\x1b\xb4\x15B\x80H@k\x8d\x8f\x9f\xdf\xc7=\xdat\x92\xfe\x05\x16\x96^<\x1c\
+\xee\x7fP>3\x9b6\x80q\xf7\xf6=\x00\xc0\xf1\xc9\x11\x1a?w\xc0\x84O\x89\xf7\
+\xf1p\xff]\xd7\x81\x94\xe6\x11cM\x90\xd2\\\xd7\x87\x7f\x0e\xb1\xb7\xbf\x8bL6\
+\xfb\xa5:=\xb3z%X)\x85L&c\xbd\xb2RF\xd6\xfd\xbe\xc6\xf1\xc9\x11\xf6\xf6w\x01\
+A\xd3\xd5\xe9\x99\xb7\x00\x90x\xcf\xd6V\x16\xbf\xf5z\xbd;\x80=~\xc1b0\x18\
+\xd0\x02\xd4\xd0\xe0[\xf3s\xcf\xcf\x83\xd8?*\xc0\x9c\xe7m\xfeA\x16\x00\x00\
+\x00\x00IEND\xaeB`\x82' 
 
 def getCopyBitmap():
     return BitmapFromImage(getCopyImage())
@@ -215,45 +215,40 @@ def getIconIcon():
 #----------------------------------------------------------------------
 def getLocateData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
+"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x03\x8cIDAT8\x8d}\x95\xc1o\x1bE\x14\x87\xbf\x8dc\'\xee\x12\xb4\x93\xb2Q\x12\
-E\x91\x87C\x8a*D\x16U\x88\n\x1f\xda\xaa\x07N\xfc\x01\x95"\xb5G\xc4)\x11\x07N\
-\xd0\xe4X\xa9R"\xc1\x9d\x18Y\xa2\xdc*\x10\xe2\x00\x12\xdb\x83\x0f\xe1\x00\
-\x86\xaa\x02q\xe88M\x80\x14\xc7x\x9dx\xc7\xeen\xeap\xf0\xd8\xd9$N\x9f4\x87\
-\x9d\xf7\xf4\xcd\xef\xbd}\xf3\xc6\xe2\x05&\xf3\xd2w\xe7\xdc+\x83|\xba\xa6\tk\
-\xe15UR\xfe \xbfu\x06p\r\xf0\x80y\xce\xe3\x90\x19\x10T\x03"\xca@\x03XT%UN\
-\xbaSg@o\xba\x97\xdc\xd7\xecY{TG\x1a\xb6\xf1i\x02M\x1c\x9a\x14H\xe3\xe1\x80{\
-\xd1\x9d\xb4\x0e\xac\\\x1c\xc6\x97\xc5\xac\xd8\x08\xb6\x82\x9d\x81\xe0\x04\
-\xd4\xa9\xeeV\xd1\x8f\xb4O\x83\x02P\x00\xde\x04r\xc0\x12m6\xd9\xe7\x81\xd6\
-\xfajf"Cf(3y\x12\x9e:\x0b\xca&>\xb0\xa2Jj=\xd8\n*bV\xdc2\xe0\x82\xd9\xf3\x85\
-+\xac\xf8 \x1e\x08\x1fN\x08\xf6\xdc\xb7]\xa7\xbas\x0c\xea\xcb\x05S\xef\x88y:\
-@\x9aU)e\xb7\xaeE\xb5,\xf3\x92\x90\xf0\xb6=ecc{\xe1\xd3\xd0\xe9+6j\xdf\xd5\
-\x19=J\xe5\x14\xb4\x0c\xdcg\x97\xcb\xb4\x99\x04\xee0\xc2=\xe0}\xf1\x86\xa8\
-\xa8o\xd5\xbd\x9e\xf28\x8c\xe1\x00O\xcc\x8a\x8d\xa1\xa4Z:\x00<8\tUE\xe5\xa3i\
-\xd0\x02j\x94UQ\xf9\xc0\x1a\xb0(\x17\xa4\xa7Jj\x19\x80qp\xe7\\\x0fpz\xe0\xae\
-uK\xe0\xf7\x0e\x03*\xaa\xa8\x02\xf3\xbd\x08\\3\x87\xa1\x8a\xaalj\xee\x00Pg\
-\x05}\x84J\xd6\x18\x13\xb8,\xf3\x12"\xe6\xa9\xb3*\xf3\xf2T\x9f\xf6\xfb\xfcx\
-\xcc1\x1b\x04\xce\x01\xd0\x01\x0e\xf1\xcc\xbes"\xce\x03\xae\x9c\x88y!\xb8\
-\x00\xac\x03\x90f\x95s\x14hQ\xc6\xa4\x9f\xb0E\xc09\x11\x03\xf0\xe3`\xb0\xe0&\
-u*\xaa\xa4\x96\xa5\x94\r^\xa6\xac\xbe\xee\xce\x82\xc45\xef\x97%\x19#\xaf\xcb\
-CF\x8fP\xfd\x9f\xa7+\x1a\xce\x9dRuK.\xc8^\xaa\xdd\xf4MYL\xd7\xac\xf7\xb3\xc9\
-\x02\xba;\x9c\xc0\x0c!\x99\x97\x1e\xf09Sx\xb4\x81:+\xaa\xa4\x96\rt\x11\xc8\
-\x99\x0b\xe2\x90\xa6L\x8a\x86\x81\xdeWE\x15\xc8\xeb\xf2\x10\x01\x04@\x8b%`=\
-\x05\x10l\x05;bV\xdcp\xa7\xdd\x9cF\xc30W\xc5\xb8x\x89\xdf\xf9\x89\x14\xfbh\
-\x1e\xa3\x99\xe7\x19\xe3h\xbe\xa4\xc5\xf7<\xe1!\x7f\xb2/.\x89\x10\x01\xf6\
-\xb0M\x86\x0cq+\xbe\xa3J\xea\x8f\xfe\xac\x103\xe27]\xd3yw\xca\x9d\xd0hH\xf3\
-\x0e\x16C\xfc\xc5W\xd4y\xc2\x08\xef\xf1\x9c)\x9a|\xc66>-\x86x\x15\xd5\x83\
-\xa2!\xdc\r?\xc4\xe2\xbb`+h\x1f\x81\xd3"\x0b\xec\xe8=}\xd1\x9dv\xcfk4dx\x8b\
-\t\x96H\xd1\xc2b\x06\x8b\x19\x0e\xf9\x82I6\x98\xe6\x03\xc6\x12\xd0\xbf\xc3Oi\
-\xf0\x8d\xfaE=\x86\xc4t\x13BL\x13\x11a\xf1\xab\x81\xbfb\xdb6F}\x9e,3d\x01\
-\x9b\x1b\x8c\x81=j\xe3\xd8\x0e\xf1^L\xf8O\xb8\xc6\x1e?\x10\x11\x04Awl&\xdb\
-\xed\x19\x10\xb3\x8f\xc2\xe2\xe3\xea\xc3*d\xf8\xc4\xbd\xe0\xbe\x8e\xcd)\xd35\
-M\xb5R\xbdM\xc4&M\xfe%\xa6\x05D=\x7f\x12\xbc\r4\x01\x97=, \xc5\x18w\xab\xe5j\
-7\xabQ>b\x889"\xee\xf2\x9cGt\xc8\xa2\xd9"&\xa4\xfb<\xed\x02\xff\x9d\x02+\xa5\
-\xdaR\xca\xa7t_\xb3\x11\xc0f\x9f\x8a\xe9\xd0,\x93f\xc4\xc4(\x1a\xfc\x0c\xb4\
-\xccj\x02m RJuz\xbc\xff\x01C\xb9\xaf\xac*\x91E\x90\x00\x00\x00\x00IEND\xaeB`\
-\x82' 
+\x03+IDAT8\x8d\x85\xd4\xcfoTe\x14\xc6\xf1\xcf\x94N\x0b\x9dD\xa6\xc0\x15HL\
+\xe4\xc5\x04c\xc0t\x8c&,f\x01\x04Cwn\x8dIM\xfd\x13\x80\x85+\x7f\x90\xb8\xd7n\
+]\x18\xc1L\x0c\x1b#ac\xc0M\x17\xce\xc2\x15c\xc4D$\xe1-Qca\x18\xa6E\xeem\xa9\
+\xd0\xba\x98;\xd3\x99\xb1\xe0Inr\xdf\xfb\x9e\xf7{\xcfy\xce{N\xc13,T\xc3|r(9\
+\xb6\xd5^\xd6\xca\\\xbf|\xbd\xf0\xb4\xb3[n\x84j\x98C\x05Sv+\x1b\xdb\xc2\xa9\
+\x855\r,\xc7z<\xfe\xbf\xe0\x1c:\x9b\xbc\x9e\x94\x8d\xd2\\lr\xdb<\x0e\xe4\xcf\
+\x05\x93fM\x90\xbc\x90\xc8\x162\xe9\x9d\xb4\x11\xeb\xf1\xb5\xa7\x82\xfb\xa1\
+\xcd{Mn{\x07\xbfc\x11_\xe0\x18\x8e\xa2\x88\x92IWJ\xfbK\xb4\xfc\x07>\xfa,h\
+\xac\xc7\x8b}\xfb\xbd\x00b=\xd6\xf3o\xd3\xa9\xf4Ji\x7fII\xa9\x12\xaa\xe1Z\
+\x17\xde\x03\xa3\x92\x1cM\xcay\xea=h\x98\xc9\xf5^3e\x1dE\x9f\x87\x10\x96q:\
+\xd6\xe2\xd5ax\x176\xd2\x17\xedT\xf3\xee\x96\xd0\x06\xcei[\xb0\x84\xd4\x05\
+\x9c\xc3\xe90\x13*\xb1\x1e\xafj\x9bN\xffJ\xa5\x0fR\xa1\x1a\xae\xf5\xc0\xddh\
+\xad\xb3\x05\xf4R\xac\xc5y\x99e+hi\xc4Z\x9c\xc7\xdc\x00\x1cv\x91\x1cJ*\xfd\
+\xe0\x8e\xdd6\xdb/\r\x16b-.\xe5\xeb\xd38\x91\xffL\xac\xc5\x86\xce-)\x83\xb6i\
+\xd9\xe6\xe1~\x8d\xe1\xddP\r'\xf1\xa25S\xda>\x0b\xd5\\\xcfzl\xf4\x15rS\xf7M\
+\x9f\x01\x1b\x06\xbf\xd9{[\xc7\x86n1\xcaC~\x15\x1c\x1b\xf2\x19\xb0\x91\xa1\
+\xf5l\xac\xc7B\xac\xc7\x82\xa2\x86\tg\xfa\xd3\xef\xb3\x8e,\x83>'\x9e\x1e\xf1\
+\xa4\x0b\xf8\nl\xb3\xec9\x8dx9\xce3\xd0\xe6=YB\x08=\x9fp2l\xd8\xbeE\xc4\xd9B\
+\xc6\x04\xa1\x1aNA\xac\xc5\xe3x/\xcc\x84n\xaa\x9d\xf4sY\xf2[s\xbe\x97\xcd\
+\x0ed\x9d\xe1D\xde\xd2\xa1\x1a*\xf8\xd2~\x15\xabh\x9b\xee^\xa10\x13\xce\xe3@\
+\xde eE\r\xdb,\xe7\xd0K\xb1\x16\x97\xc2\xc9\xb0a\x12KXq&\xd6\xe3\\oVtGd3m\
+\x92\xe1\x9e\xb7\xdc\xf1\x036\xb0\xddK\xbe\xc7\x11E\x1f\xd9\xe6;k\xfetS\xcbA\
+\x8fLR\x1a-\x91\xe9\x8d\xd2\xcd\xe2\xad;\xdb\xbc\xd1\xfc9)%L`\x8f\xcb\xf68\
+\x95\xd7aT\xe6o+h\xfb\xd1/n\xb9iu\x18\x9a\xdeK\xcf\x86j(\x0f\x82\x17\xfda\
+\xd5\xfb\xcd\x1b\xcd\xeb=\xf8^\x17\x1d\xd6\xf4\xbc7\xf2\xc8Y7\xee\xa0\x96\
+\xc3\xee\x0f@\xef\xa6\x1fx\xe8\xdbX\xef4\xd4\xa6\x14!\xec\xc5\xb8]\x0e\x19\
+\xf7i\xf2r\xf2*\xf4\xa4\xe9\xb7\xed\x1d\xe0\xc4\x8e\tY+\xeb@S_{\xe8a\x8c\xb1\
+9\x0c\xde\x97\xa7]\xb0\xdbA#\xcaF}\xd2\xfd\xc1\xb0\xf5\x80O\xfcj\xc5OR\x0f\
+\xf08\xc6x\x7f\x18<\xa6#\xc0N\x9dA\xbe\xa6\xec\x88\x11;\x15\xac\x1b\xf3\xb1\
+\x82W<\xf1\xa1\x7f\xdcR\xf0X\xea7\xab\x161\x86\x07\xc8b\x8ck\x03\xe0\x1c^\
+\xc8u/b<?P@\xd1>\xdf\x18q\xd4#ok\xb9\xda\x11\xc4\x08\x1e\xa1\x8d\x8d\x18\xe3\
+F\x97\xf5/\xb7arI\xda\xd1{\x91\x00\x00\x00\x00IEND\xaeB`\x82" 
 
 def getLocateBitmap():
     return BitmapFromImage(getLocateImage())
@@ -304,51 +299,50 @@ def getLocateArmedIcon():
 #----------------------------------------------------------------------
 def getMoveDownData():
     return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
+"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x048IDAT8\x8d\x8d\x94O\x88\x1be\x18\xc6\x9f\xf7\x9bI&\x99\xe6_\xbbm\xedB\'\
-\xc9\xd2\xc5Z\x90\xb2\xbd\xb5\x87-nK\x03)=\x14\x11\xf4\xd0"\xe2A\x11\xa9\xd5\
-\x93\x82V\x16E=Y\x95"\nV\x91^\xaaW\x0f\xb1\x91\x85\xd5\x8b\xae\xbd\xa8T[A\
-\xdd\x99\xf9\x96$u\xbb\xec\xceL23\xc9\xfc\xf9<4\x81mvZ|\xe1\x83\x8f\x97\xe7\
-\xfb\xcd\xf3>\xbc\x0c\xd5\xebu\xbd\xd1hT1VG\x8e\x1c\xf9|jj\xea\xd4\xf6\xed\
-\xdb\xa5v\xbb\xedr\xce\xbf\xb9~\xfd\xfa\x0b\xe3\xba\xfb\x95\x9c\xd4\x9c\x99\
-\x99\xf9\xe0\xe4\xc9\x93\x8f\x9f8q\xa2(\x84@\xbb\xdd\xde\xb1\xb0\xb0\xf0$c\
-\xcc\xba}\xfb\xf6\x87\xba\xaew\xfe\x0fx[\xbd^?3j\xf8\xbe\xbf\x07\xc0l>\x9f\
-\xcf\xad\xac\xac\xc0\xf7}\xc8\xb2\x8c\xc9\xc9\xc9B\xa1P\xd8\x7f\xe7\xce\x1d\
-\xa9\xa9i\x07\xb2D\x19\x02b\x01\xac\xcd\x9a\xe6J\x128\x05\xe0\xca\xa8\x91\
-\xc9d\x00\x00\x86aD\x9e\xe7!\x9dN\xa3\xd7\xeb\x81s\x8e\xc1`\x00"\xca\x01\x98\
-\x93\x81\xfd\x8c\xe8Y\x01\xfc\xf5c\xb9\xfcr\x08\xac\xcf\x9a\xe6/\x9b\xc1\x1b\
-\x8dF\xa34\x16\xc5\xa5T*u\xd6q\x9cB&\x93\x81\xe38\xe8t:\x8em\xdb\x7f\x07A\
-\xe0\xd48\xffx(}i\xb1\\>\x97#\xfa2\x0b8?\x94\xcbO\x1c5\xcd\x9b\x89\x19W*\x95\
-T\xb7\xdb\xfd\x82s\xbe\xcb\xb2\xacc\xd9lVr]\xd7\xb3m{\xc1u\xdd\xaf\r\xc3hm\
-\xd6\x0f\x84\xf8\xb4\x0btsD\x97\x8bD\xef.\x96\xcb\xef\x0c\x84\xb8\xb5\x05l\
-\x18FP\xadV\x7f\xb5m\xfbM\xdf\xf7\xbf\x92eY\x0e\xc3\xd0\x0f\x82\xe0\xcf(\x8a\
-\x96\xc7\xf55\xce\xfbMM\xbbj\x0bQ)1\xf6*\x017j\x9c\xff\x9c\xb8\x15B\x88\x18\
-\xc0\x801\xd6O\xa5Ra\x1c\xc7>\x80\x80\x88\xe2$}\x8ds\xb7\xa9io\xad\xc5\xf1\
-\xc3;\x19;\xb3\xa0i\xa9-\xe0j\xb5*\xa7\xd3\xe9G\xf6\xee\xdd\xfb\xda\xf4\xf4t\
-\xadX,\xca\xadV\xcb\xd5u\xfd\xda\xc6\xc6\xc6GSSS7\x96\x97\x97\xc3\x04x\xd8\
-\xd4\xb4\x10@\x85\x80\x99-`]\xd7\xc3C\x87\x0e=\x7f\xfc\xf8\xf1Ssss\x858\x8e\
-\xb1\xba\xbaZZ\\\\<\xbd\xb4\xb4\xb4\xe6y\xdeE\x00\xad\xf1w\x9b\x8b\x80\x9a\
-\x0c\xa0P\xaf\xd7\xcf\x8f\x9a\x83\xc1`\x97\x10\xe2h6\x9b\xdd6Z1\xc6\x18&&&\
-\xf2\xf9|~\xdf\xda\xdaZ\xa1R\xa9\xb4\r\xc3\x10\x0f\x82\x8f\x1c_\x1c5\xd2\xe9\
-\xf4\xc8y\xe4y\x1e\x14EA\xb7\xdb\x05\xe7\x1c\xfd~\xffA,\xd0\xf0\x88!\xd8n4\
-\x1a;6\x0b\x0e\x1e<x\x911\xf6\x8c\xe38EEQ\xd0\xeb\xf5\xd0\xe9t,\xcb\xb2n\x85\
-ah\xdd\xcf\xed\xc8\xa5@\xf2\x1e\xcb\xbd^\xef3\xce\xf9\x84eY5UU\xe5^\xaf\xe7:\
-\x8e\xf3\xad\xe7yW\xe38^\xbd\x9fc6t\xcc\x92\xc0\x86a\x84\x95J\xe5\xa6\xe38\
-\xaf\xbb\xae{E\x92$\x8a\xa2h\x10E\xd1?q\x1c\xb7\x0c\xc3\xd8\xb2\x11\x00\xd0\
-\xd4\xb4\x14\x01\xf2p\x14/q\x8f\x87\xa3\x9a\xc3\x93XMM\x93j\x9cG\xc3{I\x06\
-\xde\xcb1\xf6\x94%\x04\xe68WY\xc2\x9b\x14\x11\x15\x89h^UUQ(\x14\x0e\xa8\xaa*\
-\x88\xe8E\xc6X\x89\x88\xd2\x00P\xe3<jj\xda\x1fMM\xdb\x99&\x9a/0\xf6\x9ct\xf7\
-o\xb74\x8ae\xbc\x82l6\xbbND\x97]\xd7%\xdb\xb6o\xba\xaeK\x8a\xa28\x99Lf\x9d\
-\x88v\x0f]\xda\x0c(\xedd\xec\x8d\x1c\xd19\x19\x80%\xc4\xf7\x8f\x99\xe6a\x00`\
-A\x10\x94$I\xba I\xd2\x05\x00\x90$\xe9B\xbf\xdf\xffI\x92\xa4\xc1\xe6\xaf\xe5\
-\xf3\xf9\x96$I\xe7?\xd9\xbd\xfbtS\xd3\xf4<Q\xae\xc4\xd8\xa4Lt.\x10\x02\x8e\
-\x10\xdf\x1d5\xcdc#=c\x8c\x05\x8a\xa2\xcc+\x8a2\x0f\x00\xc3\xfba\x00\xf7\x80\
-\x1d\xc7Y\xf7}\x7f\xe5\xdf(Z\x05 B\x80\x06B\xc0\x8a\xe3\xdf\x1c!\xce\xce\x9a\
-f\xed\x9e\xb9\xeb\xf5\xba>\x9e\x05c\xec\x12c\xac\xbc\xb9\'\xcb\xf2\xd3\xaa\
-\xaa\n\xc6\xd8C\xc3(6\x9a\x9a\xa675\xed\xd1\x848\x133fq\x1c\xbf\x9f\xc9d\x0c\
-"z[\x92\xa4=\xaa\xaa\x8a(\x8a\x14\xcf\xf3\xf6\xbdR*Y\xd7\xeenD\t\x80\x0b\xe0\
-\xf7$\xf0\x7f\xdb\xdd\xf9?E\xff&\x94\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x04\x15IDAT8\x8d\x8d\x94Mh\\U\x18\x86\xdfs\xe6\xde\xc9\x9d\x9b\x99\xc9\x9f\
+\xa9\x06zf&\x18\xac\x82\x84t\xd9E\x82i\xc9\xc0$]\x14\x11\x14l\x17\xe2Bq\x11+\
+t\xa1`q!\xa8\xbb\xa8\x88(\xf8\x83\xd4Eu+\xed\xe8H \xba\x91\x9a\x8dJ\xb5\x15\
+\xb4\xb9wN\xc8LM\x82\xb9s\xe7\xfed\xee\xcf\xe7\xc2\x19\x1c\x92\x9b\xe2\x07\
+\x07\x0e/\xefyx\xcfw\xbe{Y\xa5R1\xaa\xd5j\t\x07\xea\xd4\xa9S\x9fLNN\x9e\x1d\
+\x19\x19I5\x1a\rWJ\xf9\xd5\xfa\xfa\xfa\x0b\x07}G\x95\x92$\xce\xcc\xcc\xbc\
+\xbd\xb8\xb8\xf8\xf8\xc2\xc2\xc2\x10\x11\xa1\xd1h\x8c\xae\xae\xae>\xc99\xb7\
+\xee\xde\xbd\xfb\x8ea\x18\xcd\xff\x03\x1e\xacT*\xe7{\x82\xef\xfb\x0f\x00\x98\
+\xcd\xe5r\xd9\xcd\xcdM\xf8\xbe\x0fEQ011\x91\xcf\xe7\xf3'vvvR5!\x1e\xc90\xa61\
+ &`w\xb6^\xdfL\x02\xab\x00\xae\xf4\x04M\xd3\x00\x00\xa6iF\x9e\xe7!\x9dN\xc3q\
+\x1cH)\xd1\xe9t\xc0\x18\xcb\x02\x98W\x80\x13\x9c\xb1g\t\xf8\xe3\x87B\xe1\xa5\
+\x10\xf8{\xb6^\xff\xa9\x1f\xbcW\xadV\x87\x0f\xb4\xe2=UU/\xd8\xb6\x9d\xd74\r\
+\xb6m\xa3\xd9l\xda\xadV\xeb\xcf \x08\xec\xb2\x94\xefw\xad/\xae\x15\n\xcbY\
+\xc6>\xcb\x00\xf6\xf7\x85\xc2\x13s\xf5\xfa\xad\xc4\x1e\x17\x8bE\xb5\xddn\x7f\
+*\xa5\x1c\xb7,\xebt&\x93I\xb9\xae\xeb\xb5Z\xadU\xd7u\xbf4Ms\xab\xdf\xdf!\xfa\
+\xb0\r\xb4\xb3\x8c}<\xc4\xd8\x9bk\x85\xc2\x1b\x1d\xa2\xdb\x87\xc0\xa6i\x06\
+\xa5R\xe9\xe7V\xab\xf5\x9a\xef\xfb_(\x8a\xa2\x84a\xe8\x07A\xf0{\x14E\x1b\x07\
+\xfde)\xf7kB\\m\x11\x15\x879\x7f\x99\x017\xcbR\xfe\x988\x15D\x14\x03\xe8p\
+\xce\xf7UU\r\xe38\xf6\x01\x04\x8c\xb18\xc9_\x96\xd2\xad\t\xf1\xfan\x1c?t\x1f\
+\xe7\xe7W\x85P\x0f\x81K\xa5\x92\x92N\xa7\x1f>~\xfc\xf8+SSS\xe5\xa1\xa1!ekk\
+\xcb5\x0c\xe3\x9b\xbd\xbd\xbdw'''onll\x84\t\xf0\xb0&D\x08\xa0\xc8\x80\x99C`\
+\xc30\xc2\x93'O>\x7f\xe6\xcc\x99\xb3\xf3\xf3\xf3\xf98\x8e\xb1\xbd\xbd=\xbc\
+\xb6\xb6v\xee\xc6\x8d\x1b\xbb\x9e\xe7\xad\x00\xd8:x\xae\xbf\x18PV\x00\xe4+\
+\x95\xca\xc5\x9e\xd8\xe9t\xc6\x89h.\x93\xc9\x0c\xf6F\x8cs\x8e\xb1\xb1\xb1\\.\
+\x97{pww7_,\x16\x1b\xa6i\xd2\xbd\xe0\xbd\xc4+=!\x9dN\xf7\x92G\x9e\xe7a``\x00\
+\xedv\x1bRJ\xec\xef\xef\xdf\x8b\x05\xd6]\xd4\x05\xb7\xaa\xd5\xeah\xbfazzz\
+\x85s\xfe\x8cm\xdbC\x03\x03\x03p\x1c\x07\xcdf\xd3\xb2,\xebv\x18\x86\xd6Qi{)\
+\t\xc9s\xac8\x8e\xf3\x91\x94r\xcc\xb2\xac\xb2\xae\xeb\x8a\xe38\xaem\xdb_{\
+\x9ew5\x8e\xe3\xed\xa3\x12\xf3nb\x9e\x046M3,\x16\x8b\xb7l\xdb~\xd5u\xdd+\xa9\
+T\x8aEQ\xd4\x89\xa2\xe8N\x1c\xc7[\xa6i\x1e\x9a\x08\x00\xa8\t\xa12@\xe9^\xc5K\
+\x9c\xe3\xeeU\xeb\xdd\x95X5!Re)\xa3\xee~X\x01\xde\xcar\xfe\x94E\x84y)\xf5$\
+\xb0\xc6\x18\xd3\x88hO\xd7ur]w\xa9\xab_\xe3\x9c\x97\x88\xa8AD\x9d\xb2\x94QM\
+\x88\xdf\x00\xcc\xa5\x19\xbb\x9ce\xec\xb9\xd4\xbf\x7f\xbbu$\xb5\x02\x80OD>\
+\x80\x1e\xf4zW_\xd24\xcd\xf0}_\x10\xd1fM\x88\x16\x07\xda\xa3\x9c_\x8e\x81e\
+\x05\x80E\xf4\xddc\xf5\xfai\x00P\x82 \x18\x06\xb0\xd8=|\xbdo\x7f\xbe\x0f\x8a\
+\xf1\xf1\xf1\xc0\xf7\xfd\x8b\x1f\x1c;v\xae\xa4\xaa\x97r\x8ceU\xc6r\nc\xcbN\
+\x1c\xc3\x03\xbe\x9d\xab\xd7\xcb=?\xe7\x9c\x07\xba\xae_\xd3u\xfd\x1a\x00\xf4\
+\xed\xb5\xfek\xd8\xb6\xddp\x1c\xe7\xd8_Q\xb4\r\x80B\x80u\x88`\xc5\xf1/6\xd1\
+\x85\xd9>(\x00\xa0R\xa9\x18G\xbc\x0f\xf5\xa5\x07c\xeci]\xd7\x89s~?\x00\xd4\
+\x84\xd8\xab\ta\xd4\x84x4\xe9pR\x8f9\x80\x18\xff}DK\x00@D\x9f\xbb\xae\xcb.\
+\x8d\x8ej\x0b\x83\x83\xa9\xb2\x94\xc3\xdd\xc7\xfb5\t\xfc\x0f\x05`\x02\xf8(\
+\x82\x9al\x00\x00\x00\x00IEND\xaeB`\x82" 
 
 def getMoveDownBitmap():
     return BitmapFromImage(getMoveDownImage())
@@ -365,48 +359,45 @@ def getMoveDownIcon():
 #----------------------------------------------------------------------
 def getMoveLeftData():
     return \
-"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
+'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x03\xe9IDAT8\x8d\x9d\x95Ol\xdbT\x1c\xc7\xbf\xcf\xcf\xf6l\xafi\x9d\x86\x86\
-\x16\xda\xc5\x06&\xa0\x82rBHH\\&uZ\xca\x1f\x15\x84\xc4\xa1p\xd8\x89\xcb\x0e\
-\x1cva\x9a\xb4\x0b\x7f\x0e \x18\xe2\xb4\t\t!\x10H\x08q\x01\x14A\xa9\x04'\x10\
-TB\x1d\xe3\xcfZH\xec\xb8RRB\xb2\xc5q_\x9c\xd8~\x8f\x03IIF\xd7V\xfbJ\x96\x9f\
-\xbe~\xfa\xbc\x9f\xbe\xbf\xdf\x93I>\x9fw\n\x85\x82\x85\x9e,\xcb\xa2\xb2,\xdb\
-\x13\x13\x13gl\xdb~,\x9dN\xd3J\xa5\xc2<\xcf\xfb,\x08\x82\xb7\xc30\\/\x95J\t\
-\xf6\x91|\xbdA\x08\xc9\x8c\x8c\x8c\x9cZXXxj~~~L\x08\x81J\xa52\xbe\xb2\xb2\
-\xf2\xcc\xea\xeaj\xb3\xd3\xe9\xbc\x05\xa0z\x10\xf0\xe1|>\xffl\xdf\x08\xc3p\
-\x12\xc0\xb1T*\x95\xda\xdc\xdcD\x18\x86\x90e\x19SSS\xa3\xa3\xa3\xa3w\xd7\xeb\
-u3\x97\xcbm\xb9\xae+\xf6\x03+\x00\xde\xef\x1b\x9a\xa6\x01\x00\x1c\xc7\xe1\
-\xedv\x1b\xaa\xaab{{\x1b\x9e\xe7\xa1\xdb\xed\x82\x10\xb2_\xb1;\xe0k\x85B\xc1\
-\xec\x1b\xb6mO\x8e\x8d\x8d\x9dU\x14\xe5\xb9 \x08F5MC\xab\xd5B\xb5Zm\xf9\xbe\
-\xffg\x1c\xc7\xfe~\xd5\xf6\xc1C\xe2\x9c\xd7\x83 x\xd7\xf3\xbc\x89f\xb3yL\xd7\
-u\xca\x18k\xfb\xbe\xbf\xc2\x18\xfb\x98s\xfe\xf7A+\x1e\x92\xeb\xba\x91eYk\xbe\
-\xef\x9f\xe3\x9c\x17TU=S\xab\xd5NGQt%I\x92\x92\xeb\xba\xdd\x9b\x02\x03\x80\
-\xe38q.\x97\xbb\x92\xcdf\x1b\xb2,\x9fb\x8c}\x0e@\x0cF`Y\x96\xa2(\xca=\xba\
-\xae\x1f\x91e\x99\x84a\xd8\xeav\xbb\xeb\x9c\xf3\xadb\xb1\xc8w\x05\xf7*\x17\
-\xb3\xb3\xb3\xbc\xb7\xe6\x83\xdf,\xcbR\x0c\xc3x\xc8\xb2\xacW,\xcb\xbaO\xd34R\
-.\x97\x9b\x9e\xe7}\xe8\xfb\xfeE\xdb\xb6\xcb7\x04\xef%B\xc8\xed\xa9T\xea\xc5\
-\xc5\xc5\xc5\x87\xe7\xe6\xe6h\x14E(\x97\xcb\xe6\xf2\xf2\xf2\xc9\xb5\xb5\xb5\
-\xad0\x0c\xdf9\x088\x9b\xcf\xe7_\x184\xc20\x9cVU\xf5\x01J)u\x1c\x07q\x1c\x03\
-\x002\x99LF\xd3\xb4\xa3\x94\xd2C\xfb\x81\xb7\x01\xcc\x00xs\xd0\xec\xcf\xfa\
-\xc6\xc6\x06L\xd3\x84$I\xf0}\x1f\xd5ju\xe7\x90=\xc1\x85B\xa1\r\xe0\x7f7\xc2\
-\xb6\xed#\xa6i\x9e\xd7u\xfd\x89\xf1\xf1qJ)\x85\xef\xfb\xa8T*\x7f1\xc6~M\x92$\
-\xbc\xa9\x8c9\xe7\x95 \x08^/\x95Jf\xbd^\xbfSQ\x94\xc3A\x10\\\x0b\x82\xe0\xa3\
-N\xa7\xf3\x05\xe7|O0\xe9=b\xe0-\x80\x7fg\xdd\xb6\xed\x1fN\\\xbd\xfa\xd2#\x8d\
-\xc6V\x0c\xccl\x112\xfe\xaa$}\xc59o\xb8\xae{\xc3q#\x84\x90\x0c\xa54-IR\x9ds~\
-4\x8e\xe3\xdf\x00\xb4\xfa\xf0\x0bq,(\xd0\xd2\ti)\x84\xbc\xa7'\xc9\x1bE\xc7\
-\xd9\xb9\x95\xd2.P\x85\x10r\x17\x80\x05UU/k\x9af\xaa\xaa\xfa=!dI\x92\xa4;\
-\x00\xa8\xbd}\x8f&\xc0\xa6B\x08\x08\x90%@q\x10\xb2\x1b8\xad\xeb\xfa\xba$I\
-\xdf2\xc6\x0e\xf9\xbe_d\x8c\x11\xc30BM\xd3\xfe\x00\x90\xfdrf\xe6q\x00\x1fH\
-\xc0,\x80Oz\x19\r5Y\x8e\xa2\xc8\x04p\xa2\x97c\x03\xc0m\x9dN\xe7\x9c$I\xad$\
-\xf9\xefGa\x18\xc6\xcfa\x18>}arr\x91\x00\xa7S\x84\x8cH\x84|\x1d\x0b\x81\x04\
-\xf8Q\x00\xbf\x0f\x81%I\x8a\x0c\xc3(\x00\x00c\xec~\xc30>\x05\x80(\x8a.\x0enl\
-\xb5Z\xe9$I\xa6k\x9aV\xb5\x15E\xc4\x00!B\x80\tq\t\xc0\xf3\xc7=\xef\xd2P\x14\
-\x94\xd2m\xc6\x18a\x8c\x11\x00\x97\x19c\xd9v\xbb\xfdZ\x92$C\x8d\x8d\xa2\xe8V\
-EQ\xce\x9f\xad\xd5\xbe\x11\xc0R[\x88&\x13\xc2\x05\xb0t\xdc\xf3~\xba>\xcf\xdd\
-2\xae\x0b!^\x16B\x9c4\x0cCPJ\xef5\x0cCp\xceG\xa7\xe3\xf8\x96'S\xa9\x06\x07\
-\xbe\x03\xf0 \x00\x06\xe0\x97]\x18\xf8\x07\x82\x8c\xe0o)B\x05\xba\x00\x00\
-\x00\x00IEND\xaeB`\x82" 
+\x03\x9bIDAT8\x8d\x9d\x94\xefk\x1cE\x18\xc7\xbf\xb3?\xce\xdd\xad\x97n.x&\xe8\
+\xf6v\x11QB\x89\xe7\x0b\x91\x14|S\x88\xb8\xa9H\xda\xbc\xe8\x1b\x85\xfaJ,\xbe\
+\xf0\x85\xbe\xf0\xbd\xda7\xa2\x15}S\x11E\x14\x05AA\xb49\x9a\x98\x7f@\x03!\
+\x05E\x1a\xcc\xed\xde\x06\xee\xd2\xf4\xd2\xbb\xbd\xc9\xdc\xde\xed\xee\xac/\
+\xba\x176\xcd5\t>0\xcc\xccwv?\xcfw\x9f\x9d\x19b\xdb\xb6S\xa9TL\xa4a\x9a\xa6\
+\xe88N<==\xfd\x95eY/\x8f\x8e\x8e\x8a\xf5z\x9dy\x9e\xf7+\xa5\xf4\xb3 \x08nU\
+\xab\xd5\x18G\x84t\xbf\xe08N\\.\x97\xaf\xce\xce\xce^\x98\x99\x999\x99$\t\xea\
+\xf5zayy\xf9\xe2\xca\xcaJ\xbb\xd7\xeb}\n\xa0q\x1c\xf0\t\xdb\xb6_\x1d\x08A\
+\x10\x8c\x038\x9b\xcf\xe7\xf3\x9b\x9b\x9b\x08\x82\x00\x92$abbbddd\xe4\xa9f\
+\xb3\xa9\x97J\xa5-\xd7u\x93\xa3\xc02\x80o\x07\x82\xa2(\x03\xe7\xbc\xdb\xed"\
+\x97\xcbaww\x17\x9e\xe7\xa1\xdf\xef\x83\x10r\x94\xd9=p\xabR\xa9\xe8Y\xb1\\.\
+\x7f.\xcb\xf2k\x94\xd2\x11EQ\xd0\xe9t\xd0h4:\xbe\xef\xff\x1bE\x91\x7f\x94\
+\xdb\x01x_\x94J%\x99R\xfa\xb5\xe7y\x8f\xb4\xdb\xed\xb3\xaa\xaa\x8a\x8c\xb1\
+\xae\xef\xfb\xcb\x8c\xb1\x1f9\xe7w\x8e\xe3X\xb8_p]7\x8c\xa2hmuu\xf5b\xab\xd5\
+z7\x8e\xe3;\xdb\xdb\xdboRJ?\x08\xc3p\xcdu\xdd\xfeq\xc0\x07\x1c\x03\x80\xe38Q\
+\xa9T"\xc5bqA\x92\xa4\xb7\x18c\xbf\x01H\xb2%0MS\x96e\xf9iUUOI\x92D\x82 \xe8\
+\xf4\xfb\xfd[\x9c\xf3\xad\x8d\x8d\r>\x14\x9c:O&\'\'y:\xe6\xd95\xd34eM\xd3\
+\x9e7M\xf3C\xd34O+\x8aBj\xb5Z\xdb\xf3\xbc\xef}\xdf\xff\xc2\xb2\xac\xda\x03\
+\xc1\x87\x05!\xe4\xb1|>\xff\xde\xdc\xdc\xdc\x99\xa9\xa9)1\x0cC\xd4j5}ii\xe9\
+\xf5\xb5\xb5\xb5\xad \x08\xbe<\x0e\xb8h\xdb\xf6\xdbY!\x08\x82\xc7s\xb9\xdc3\
+\xa2(\x8a\x8e\xe3 \x8a"\x00\xc0\xd8\xd8\xd8\x98\xa2(O\x8a\xa2\xf8\xd0Q\xe0]\
+\x00\x06\x80O\xb2\xe2`\xaf\xaf\xaf\xafC\xd7u\x08\x82\x00\xdf\xf7\xd1h4\xf6\
+\x92\x1c\n\xaeT*]\x00\x07N\x84eY\xa7t]\xbf\xaa\xaa\xea+\x85BA\x14E\x11\xbe\
+\xef\xa3^\xaf\xdff\x8c\xfd\x1d\xc7q\xf0\xbfj\xcc9\xafSJ?\xaaV\xabz\xb3\xd9|B\
+\x96\xe5\x13\x94\xd2\x16\xa5\xf4\x87^\xafw\x9ds~(\x98\xa4-\xc9\xf4\tpo\xaf[\
+\x96\xf5\xc7Kw\xef\xbe\xff\xc2\xce\xceV\x04\x18[\x84\x14\xae\x08\xc2"\xe7|\
+\xc7u\xdd\x07o\xb7,(\xd3\x0f\x12\xe0Z\x14%"\xd0Q\t\xe9\xc8\x84|\xa3\xc6\xf1\
+\xc7\x1b\x8e\xb3w*\x0f\x9c<\xdc\xbb\x94\x00\x00\x9a\xa6\xf5\x00\\H\xdb Q.]>\
+\x17\x03\x9b2! @\x91\x00\x1bY\xc80\xc7\xe1\xc0%c\xec\x1c\x80\x85t>\x9f\x82\
+\x8d\x1b\x86\xf1,\x80\xef\x04\xe0<\x80+i\xc6}?Y\n\xc3P\x070\x9b\xce\x17\xd2\
+\xf1.\x80K\x19(\x00\xfc\x0c`\xfe\xda\xf8\xf8\x1c\x01\xde\xc9\x13\xf2\xb0@\
+\xc8\xefQ\x92 \x06\xfeL\x80\x7f\xf6\x81\x05A\x085M\xbb\x0e\x00\x8c12\x18w\
+\xbb\xdd\xcbIr\xf0v\xdc\x8e\xe3mK\x96\x93\x08 $I\xc0\x92\xe4&\x807^\xf4\xbc\
+\x9b\xfb\x1e\xb4m\xdb\x19R\x0e\xa4\x9f=\x9b\x99\x0f\xea\xfc\xe8\r\xc38\xb3h\
+\x18\xadE\xc3p\x16\r\xe3\xf4\xb0\x97\x87\xd5X\x00\xc0\x01\x10M\xd3\x12\xc6\
+\xd8|\xaa\xff\x04\x80\x9c\xcf\xe7e\x0e\xdc\x16\x81\xe7\x00\xfc\x02\xe0\xafa\
+\xe0\xff\x00\xe4(\xae\xfd\x8d\xec\xeb\xa7\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getMoveLeftBitmap():
     return BitmapFromImage(getMoveLeftImage())
@@ -425,42 +416,40 @@ def getMoveRightData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x03\x7fIDAT8\x8d\x9d\x93Oh#U\x1c\xc7\xbfof^&\xf3\xa6M\xb7\xc9JZ\xdc1F\xac)\
-\x94\x16\x02\xd5R\xff\x1d\x03\x83\xb7\xa5\xa0\x88\'\x15\x04\x0f.x\xac\x1e\
-\xf4 \xb8\xf5 \xb8Z\xedA\x97E<\xa8x\x94@s\xe8"\x08\xdb\xa5\x07\xa1h\xa5\x982\
-\xd3\x98\xa6m\xda\xba;\x93\xbc\xc9\xf4%\x19\x0f\xdbH\x98M\xda\xe0\xf76\xef\
-\xfb\xfb}~\xef\xcd\xfb>b\x9a\xa6\x95\xcf\xe7\x1fGHSSS\xa3\xf1x\xfcV:\x9d~V\
-\xd7uR.\x97\x9d\xc3\xc3\xc3\xeb\xcdf\xf3\xd6\xc6\xc6\x86\x17\xae\x0fK\xe9gD"\
-\x91O\x16\x16\x16r\xf3\xf3\xf3j\xb3\xd9\x84m\xdb\xf1B\xa1\xf0\xc1\xce\xceN\
-\x11@a\x10\xb0n\x9a\xe6ka\xc3\xf7\xfd9\xc6Xdww\x17\xbe\xefC\x96e\x8c\x8f\x8f\
-\xc79\xe7,\x95J\x11\xdb\xb6\x83\x8b\xc0\x14\xc0\xb7aCUU\x14\x8b\xc5`tt\x14\
-\xb2,\xa3V\xab\xa1\\.\xc3\xf3<\x00\x90\x00\xb4.\x02\xdf\xcb\xe7\xf3\x97\xc2F\
-6\x9b\xbd\xc9\x18{5\x91HD(\xa5p\x1c\x07\x95J\xe5\x1f\xd7u9\x80sw\xdb\x01\xf7\
-T\xbd^\xbffY\xd6\x95\xe3\xe3\xe3\xa7\x15E\xd1\x1a\x8d\xc6\x01\xe7|E\x08q\xdb\
-\xb6\xed\xf6\xff\x06ooo;\x93\x93\x93/\xef\xed\xed\xbd\xe8\xba.2\x99\xcc\x86\
-\xe7y\xd5\xad\xad-q\x11\x14\x00`\x9a\xa6u\xd1p\xc6X\xa5\x9f\'\xcb\xb2\xce\
-\x18\xd3b\xb1\x18\xa3\x942<\xb83H\x03\xcc&\x00\xec\x1e\xeb\x12\x00UUU\x1b\
-\xc0[\x00^\xa1\x94\xd6\x01\xc4\x00D\xfa\xfe\x8an0\xe7\xfc\xa7\x87\xa8\x92\
-\x14\x8dF\xa35\xce9\xe9Z\xfe\x861\x16\xb4Z\xad\xd4 `\x891\xb6\xc49\xbf{\xf6\
-\xad\x03\xb8\xdbn\xb7\x17\x84\x10\xd7\xc2\xc5\xba\xae\xbf\r\xc0\x1d\x04\xfc_\
-\xb4\x18c\xb7\x01\x80s\x9ed\x8c}\t`[\x08\xf1Yw\xb1\xeb\xba\x00\xceIE\x97\xfc\
-\xceq\xbb\x8f\xedy\x9e\xaei\xdaC/V\x92\xa4\xe5F\xa3\xf1\xf3 \xe0\x9e\n\x82\
-\xa0\xc19\xff\x811V\xf3}\x7f\x11\x80\xa3\xaa\xeaM\xce\xf9\x08\x80\xc6 \xa9\
-\xe8\xa76\x00w\xf8\xf4\xf4\x89\xef\x92I|?6\xf6X\xb2\xd9\x1c\x7f}d\xc4_5\x0cq\
-\xee\x8egff\x1eM\xa5Rlxx\x98T*\x95\xd6\xd1\xd1Quss\xd3\xe9\xf8\xab\x86A\x01\
-\xbc$\x01\xd7\x01DW\x92I\x00\xf84W*\xf9=\xc1\xa9T\x8a\x0c\r\re\xd2\xe9\xf4\
-\xf2\xc4\xc4DV\xd34\x89RZ#\x84\xac\xcc\xcd\xcd}\xbe\xbe\xbe~\xb2j\x182\x807\
-\x01\xdc\xd0\x08\x81\x0c\xc0\t\x82\x0f\x01\xd4W\rc\xb9\'\xd8\xb6\xed`vv\xf6\
-\xfd\\.\xf7\\6\x9b\x8d\x08!ppp\x10[[[{g\xfc\xce\x9d_\x96\x0c\xe3\xcf\x16\xf0\
-B\x1b\xb8A\x00\xc8\x00\x04\x00\x02\xac\x05@\x06\x80\xa6\x00\xb8d\x9a\xe6Ga\
-\xb8\x10\xe2\x19B\x08\xb5,\x0bB\x08\x10B\x10\x8b\xc5bW\xdam\x11%dR"\xe42\x80\
-\x8f\tp5\x00\x9er\xda\xed\x02\x80w\x01\xfc\x9e+\x95\x02\xe5l\xd8b\x18L)E\xb1\
-X\x0c\xe2\xf18\x14E\x81\xe38(\x97\xcbH\xb7Z\x89S\xe0k9\x08.\x9f\x05\xbc\xd1\
-\x02~\x04\xb0\x98+\x95\xfe\xea\xf4+\x00\xea\xf9|\xfe\x910xzz\xfa\x0bEQ\xdeH$\
-\x12*\xa5\x14\xae\xebb\x7f\x7f\xbf\xfa[\x10\xfc\xfdd\x10\\%x\x10\x0b\x00\xd5\
-\x008\xce\x95J\xd5\xee\xfe\xbe\xa9\xf0}\xff=\xcb\xb2\xc6NNN\x9eWU\x95\xd4\
-\xeb\xf5\xfb\x9c\xf3\xa5_%\xe9\x8f\xafJ\xa5F\xbf\xbe\x8e\xfe\x05\x80Ho\x06O\
-\xcc-q\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x03eIDAT8\x8d\x9d\x92Mh#u\x18\xc6\x9f\xff|\xe4\xe3\x9f&m\x92\xad\xbbY7\xc6\
+\x885\x85\xd2B\xa0Z\xea\x17x\tL{[\x8a.\x8b7=+\x08zP\x0fzs\xeb\xc1\xc3\xeaj\
+\x0f\xab,\xe2\xc9\x9b\xe2\x06\x9aCE\x10\xb6\xd2\x83P\xb4RL\x99\xe9l\x9a\xb6i\
+\xab\xce$o2\x9dd\xfe\x1eL\xa4\x0c\xc96\xecs\x1a\xe6y\x9f\xdf;<\xf32M\xd3\xf4\
+b\xb1\xf88|\x9a\x9a\x9a\x8a\'\x12\x89;\xd9l\xf6\xd9H$\xc2*\x95\x8auxxx\xa3\
+\xddn\xdf\xd9\xd8\xd8h\xfa\xe7\xfdR\x06\x19\x81@\xe0\xe3\xa5\xa5\xa5\xc2\xfc\
+\xfc|\xb0\xddn\xc30\x8cD\xa9T\xfa`gg\xa7\x0c\xa04\x0c8\xa2i\xda\xab~\xc3q\
+\x9c9\xcey`ww\x17\x8e\xe3@\x96e\xa4R\xa9\x04\x11\xf1L&\xc3\x0c\xc3\x10\xe7\
+\x81U\x00_\xfb\x8d`0\x88r\xb9,\xe2\xf18dYF\xbd^G\xa5RA\xb3\xd9\x04\x00\t@\
+\xe7<\xf0\xdf\xc5bq\xcco\xe4\xf3\xf9\xaf8\xe7\xd7\x93\xc9d@UUX\x96\x85j\xb5\
+\xfa\x97m\xdb\x04\xe0\x81_\xdb\x03\xf7U\xa3\xd1xS\xd7\xf5+\xc7\xc7\xc7O+\x8a\
+\x12n\xb5Z\x07D\xb4\xe2\xba\xee\x8f\x86ax\x0f\r\xde\xde\xde\xb6&\'\'_\xd9\
+\xdb\xdb{\xd1\xb6m\xe4r\xb9\x8df\xb3Y\xdb\xda\xdar\xcf\x83\x02\x004M\xd3\xcf\
+[\xce9\xaf\x0e\x05;#i\x88\x19\x06\xe0\xd2\x80l\x84s~\x04`\x01\xc0\x02\xe7\
+\xbc\xd7}``\x15g\xc1D\xf4N\xf7\xb97\xdf\x96$)\x14\n\x85\xeaD\xb4\x08\xe0.\
+\x00\x10\xd1"\xe7\\\x10\x11\x1b\x06,q\xce\x97\x89\xe8\x17\x00Q\x00\x8f\x00\
+\xf8\xce\xf3\xbc%"b\xbe\xd9\xbbD\xb48>>\x1e\x1f\xa6\x8a\xffO\x8bs\xfe}8\x1c\
+\xbe\xdd]\xf6\xf9\xa0\x80m\xdbC\xfd\xbc\xbeb\x8c\xf1n\xa7\x0bg^/p\xce\x85$I\
+\x8f\rSE_\t!ZD\x14\xe7\x9c\xdf\'\xa2\x97\x01\x80s\xfe\x03\x11\x8d\x02h=4\x18\
+\x80\x07\xc0\x8e\x9e\x9e>\xf1\xe5\xe5\xcb\xd7\x14\xc6\xc6\xde\xae\xd5R/\x8d\
+\x8e:\xd7b1\xf7\x81\xe0\x99\x99\x99G3\x99\x0c\x8fF\xa3\xacZ\xadv\x8e\x8e\x8e\
+j\x9b\x9b\x9bV\xcf_M\xa7U\x00\x8b\x12p\x03@h\xe5\xe2E\x00\xf8\xa4`\x9aN_p&\
+\x93a###\xb9l6{kbb"\x1f\x0e\x87%UU\xeb\x8c\xb1\x95\xb9\xb9\xb9O\xd7\xd7\xd7O\
+V\xd3i\x19\xc0\xeb\x00n\x86\x19\x83\x0c\xc0\x12\xe2C\x00\x8d\xd5t\xfaV_\xb0a\
+\x18bvv\xf6\xfdB\xa1\xf0\\>\x9f\x0f\xb8\xae\x8b\x83\x83\x83\xd8\xda\xda\xda\
+\x1b\xa9{\xf7~ZN\xa7\xff\xe8\x00/x\xc0M\x06@\x06\xe0\x02`\xc0\x9a\x00r\x00\
+\xc2\n\x801M\xd3\xae\xfb\xe1\xae\xeb>\xc3\x18Su]\x87\xeb\xba`\x8c!\x16\x8b\
+\xc5\xaex\x9e\x1bblRb\xec\x02\x80\x8f\x18pU\x00OY\x9eW\x02\xf0\x16\x80\xdf\n\
+\xa6)\x94\xee\xb2o\xfc`UUQ.\x97E"\x91\x80\xa2(\xb0,\x0b\x95J\x05\xd9N\'y\n\
+\xdc\x96\x85\xb8\xd0=\xf0V\x07\xf8\x16\xc0\xbb\x05\xd3\xfc\xb3\x97W\x004\x8a\
+\xc5\xe2\xb8\x1f<==\xfd\x99\xa2(\xaf%\x93\xc9\xa0\xaa\xaa\xb0m\x1b\xfb\xfb\
+\xfb\xb5_\x85\xb8\xff\xa4\x10W\x19\xfe;\x0b\x005\x01\x1c\x17L\xb3v6?\xf0*\
+\x1c\xc7yO\xd7\xf5K\'\'\'\xcf\x07\x83A\xd6h4\xfe!\xa2\xe5\x9f%\xe9\xf7/L\xb3\
+5(\xd7\xd3\xbf\xc3\x11a\x17\xced\xee\xd3\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getMoveRightBitmap():
     return BitmapFromImage(getMoveRightImage())
@@ -479,51 +468,49 @@ def getMoveUpData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x04dIDAT8\x8d\x85\x92]h\x1cU\x14\xc7\xffg\xee\xec\xec\xce\xdd\x9d\xd9\xb4I\
-\xadB\xc7$\xa6mZZ\xfcx\x12,\x8d\r\xa5[\x96\x16\xf4Y\x8a>\x88X\xb0\xd2\xfa T\
-\xf1\x03\xa9>\t\x15#>\x14\x14\x1fBAPDTX\xbbP\x88\xd6\x87\x14A\n\x8a\x15i\x92\
-M\xa7]\x93&1\xbb;;\x1f\xfb1\xf7\xf8\xd0,l\x93m<O\x87s\xcf\xfd\xdd?\xff\xfbG>\
-\x9f/\xe1\xde\x12D\xd4GD\xefI)\xd9\xb6\xed\xbdRJ&\xa2S\x9a\xa6\xf5\x01\x10\
-\x05\xc7\xa1\xa2\xe3\xec*:\xce\x9fE\xc7!\xf4(\xad\xc7\xac\xdf4\xcdU"\xfa<\
-\x08\x02\xaa\xd5j\xd7\x83 \xa0d2\xe9\xa5R\xa9U\x93h\xbb\x06<\x05\xe0W\x00\
-\x12\xc0\xbe\x9e\xe08\x8e\xd3\x00N\x008\x00`?\x80\xe7\x9b\xcd\xe6\xc7B\x88f\
-\xf7\xa2eYe!\xc4\x99\xb7\x07\x06\xc6\t\xb8h\x12e3D\x83&\xd1\xc5\xa2\xe3\x9c(\
-:\xce\xfe{\xc0J\xa9\x84\x94rRJ\xf9\x0b\x80\x01)\xe5\x87\x86a\x9c\x06p\x0f\
-\xd8\xf3\xbc\xd5(\x8an\xf5\x0b\xb1\x05\x00t\x80\r"d5\xedQ\x8bh\xd2$:\xdf\r\
-\xd7\x12\x89D%\x08\x02\n\x82\x80\x00L\x05A\xf0P\x14E\x9f\xc6q\x9c\xe9\x06\
-\xb7\xdb\xed}\x89D\xe2\xeb\x97\x17\x16\xbea\xe0U\x8f\xb9^Q\xea\x9f6\xf3D\x82\
-\x08\x16\xd1\x91\x14\xd1D\xd1qv\xdd\xcf\xe3\x15\xa5\xd4\xf9T*5OD\xef\x0b!\
-\x1e\x94Rr\x1c\xc7\xc90\x0cG\x00,\x1fu\xdd\xef\x01\xbc\xa0\x80\xca\xb2R\xe7\
-\xea\xcc\x13m\x00Y\xa2\xa7\r\xa2\xc9\xa2\xe3<\xd0\x0b\xdc\x020\x1b\x86\xe1\
-\x1e\x00\xd3J\xa9F\x18\x86\xcf0\xf3ef\x9e\xeb\xb2\xe8;\x00\xc7s\xae\xbb\xdcd\
-~\xb7\xa6\xd4\x85\x18\xd0\x08x\x12\x80\xa9\xf7\xfa\xd1\xc1\xc1AM\x08\xd1J\
-\xa5Rl\x9a\xe6\x810\x0c\xa3F\xa3\xc1\xcc,fgg\xdb\x00\x90s\xdd\x18\xc0\xecZ_\
-\x01p\xf2\'\xc7\x19\xcdj\xda\xa1U\xe6\xeb\x1b\xc0CCC\xbaa\x18{v\xec\xd8\xf1\
-\xc6\xce\x9d;s\xd9lV/\x97\xcbA\xa9T\xbaT\xa9T&\x00\\\xeb%\x06\x00\x18\xf0\
-\xd7B\xbdQ1\x11\r\xa4\xd3\xe9\x93\x87\x0f\x1f>>>>n+\xa5\xb0\xb4\xb4\xd4755\
-\xf5\xec\xd5\xabWW6\x03\xc7\xc0\xdf\x0c\x1cS\x00t\x00v>\x9f?\xd39l6\x9b\xd7\
-\x98y\xcc4\xcd\xb4\xeb\xbah6\x9b\xd04\r\xfd\xfd\xfd\x96eY#\xf7\x83\xae)\xb6;\
-}G\xf1G\x9d\x81a\x18\x88\xa2\xe8\xf7R\xa9\x840\x0c\x91L&Q\xaf\xd7\xe1\xba.\
-\x1a\x8d\xc6f\\pW\xcat\x00\xb5B\xa1\xb0\xb53\x18\x1e\x1e\xdenY\xd6\xd9\x99\
-\x99\x99\x87=\xcf\xcb&\x93I\xf8\xbe\x8f\x85\x85\x85j\xb5Z\xfd\xeb\x7f\xc0\
-\x82q\x97\xbe\xc1c\xa5\xd4\x8a\xef\xfb\x9f\xb9\xae\xdb_\xadVsRJ\xdd\xf7\xfd\
-\xc0\xf3\xbc\x1f\xc30\xfcrS\xc9@f\xed\x81\xe6\x06\xf0\xfc\xfc|{hh\xe8z\xbd^\
-\x7f+\x0c\xc3I!\x84\x88\xe38\x8a\xe3xV)U\xde\x8cJ\x80\xb5\x06.\xf7\xcc13kB\
-\x08\xdb\xb2\xac\x01)\xa5\xf0}?\xf2}\x7f)\x8ec\x01\xa0\xbd~\xbf\xe88\xa6\x0e\
-\x8c\xf7iZ\xb2\xc6\x8c\x18\xf8\xb9W\x8e\x13\xc9d\xf2\xf1\x91\x91\x91\xb3\xa3\
-\xa3\xa3\x87l\xdb\xd6o\xdf\xbe\x1d\xde\xb8q\xe3\xf2\xf2\xf2\xf2\'\xc3\xc3\
-\xc3\xbf\xcd\xcd\xcd5\xbb\xa0)\x83hw\x86\xe8\x88\x00\xc6\x18\xf8\x02\xc0k\
-\xbdr\xbc-\x93\xc9\xbc866v\xe4\xe0\xc1\x83V\x1c\xc7XYY\xb1\xaf\\\xb9rlzz\xfa\
-N\x10\x04\xb7.9\x8eN\xc0\x1d\x000\x88\x1e\xcb\x10\xbd\xa2\x03\xcfU\x99\x0bM\
-\xe6wr\xae[\xd5\x01\xf4\xe5\xf3\xf9\x0f:\xe0V\xab\xb5\x95\x99\xc7t]\x97\xf3\
-\xf3\xf3h\xb5Z "\xd8\xb6\x9dN\xa7\xd3\x83B\x88\x0cZ-\xc7"\x1a\xd5\x88v3p\xb2\
-\xc5\xbc7\x04\xbe\x8a\x98O\xe7\\w\x01\xb8\x9b\x8a\x16\x807;\xe0D"\x810\x0c\
-\x7f\xeb\xce\xb1\xe7yp]\x17Q\x14\x81\x99\x01\xe0\\\x1bx\x82\x98\xcb\x0c|\x1b\
-2\x9f\x02p-\xe7\xba\xab\x1d\x8e\x0e\xc0/\x14\n\xdb\xba<\xde\x96\xc9d^\x9f\
-\x99\x99y\xc4\xf3\xbc>\xc30\xe0\xfb>\x16\x17\x17W\xab\xd5\xea\x1fq\x1c\xaf\
-\x02x)d\x8e\x004\x00\xd4s\xae\xfb\xefzK7x\xcc\xcc+A\x10\\\xb8y\xf3\xe6\x96J\
-\xa5rLJ\x99\x08\x82\xa0^\xab\xd5~h4\x1a\x17\x95R\xcbG]wq\xfd\xbd\xf5\xf5\x1f\
-I\x17\x177\xa3W\x8f\x18\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x04&IDAT8\x8d\x85\x94Oh\x1cU\x1c\xc7\xbf\xbfy\xb3\xfffwvS\x93\xd4\x83\x1d\
+\xb2k\xda\xc6\xa2\xf8\xe7\xe4)iC\xe9\x96Mz\xf0,\xa2\x07\x11\x0b*\xd6\x83\xd2\
+\x8a\xe8\xa1x\x10A!\x9e\n\x82H(\x14\x04\x11\xb5]\xbb D{\xb0\xb9\x94\x1e\x82\
+\x15I\xd2M\x9e\x89I\xb31\xbb\x99\x9d\x99\xdd\x9d}\xf3\xf3\x90\xd9\xb0&\xdb\
+\xf8\xe01\xbfy\x8f\xf9\xfc\xbe\xef\xcbw\x1e\n\x85B\x19\xff\x1d\xa2S\x18\x86\
+\xc1\x00&\xc2\xc9\x9a\xa6\xf5\x01\x10E\xcb\xa2\x92e\x1d+Y\xd6\xef%\xcb"\xf4\
+\x18z\x8f5\x15>\xd9u\xddI\x007\xc2\xf7\xc9x<\xbe\xc5\x9e\xf7\x98\x06\xe4\x00\
+\\\x07P\x05\xf0$\x80\xb9}`\xa5T2T\x84\x10\xd2\xa9_\xea\x82\x02\xc0\r!\xc4\
+\x85K\x03\x03\xe3\x04|\x9c \xca\x08 \xa3\x80\xab%\xcb\xfa\x14\xc0\xdd\xbc\
+\x94\xbb\r\xb4 \x08"\x86a\\7\x0c\xe3zx\xfcN\xdd\xde\xab\xc2q\x9c\xc3\xfdB\
+\x1c\n\x8f\xcaQ"d4\xedi\x93h:A\xf4Y\xc9\xb2\x9e\xda\x05G"\x91\xaa\xeb\xba\
+\xe4\xba.\x01@W}\xadK=\x88\xe8\xbdx<\xfe\xfe\xebkk\xdf2\xf0\x96\xcd\\\xaf\
+\x06\xc1\xdfm\xe6\xa9\x08\x11L\xa23q\xa2\xa9\x92e\x1d\x03\x00\xad\x87\xc7\
+\xbb\xac\xd0\xc7\t\x00\x13\xcc\xfcI\xd8\xb0rV\xca\x1f\x00\xbc\x12\x00\xd5J\
+\x10\\\xae3O\xb5\x01d\x88NF\x89\xa6K\x96u\xf8 p(\x94~\x0b\xbd\xa6p\xb6\xc2\
+\xbd\xef\x01\x9c\xcbKYi1\x7f\xb4\x1d\x04W\x14\xa0\x11\xf0<\x80D\xafT`hhH\x13\
+Bd\xe3\xf1\xf8\x89D"A\x9e\xe7\xb5\x9a\xcd\xe6<3//..\xb6\x01 /\xa5\x02\xb0\
+\x18\xd6U\x00\xe7\x7f\xb1\xac\x91\x8c\xa6\x9d\xdab\xbe\xb7\x0f\x9c\xcdf\xf5h\
+4\xfa\xc4\x91#G.\x1d=z4\x9f\xc9d\xf4\xd5\xd5U\xb7\\.\xdf\xacV\xabS\x00\xee>\
+\xecx\x0c8a\xa8\xf7+&\xa2\x81d2y\xfe\xf4\xe9\xd3\xe7\xc6\xc7\xc7\xd3A\x10`cc\
+\xa3off\xe6\x85\xd9\xd9\xd9\xcd\x83\xc0\n\xf8\x93\x81\xc9\x00;?H\xbaP(\\\x08\
+\xf7"J)\xbf\xddn\x9fL$\x12I)%Z\xad\x164MC\x7f\x7f\xbfi\x9a\xe6\xf0\xc3\xa0\
+\xa1\xe2t\xa7\xee(\xfe\xbc\xb3 \x84\x80\xef\xfbs\xe5r\x19\x9e\xe7!\x16\x8b\
+\xa1^\xafCJ\x89f\xb3y\x10\x17\xdc\x952\x1d\xc0v\xb1X|\xa4\xb3\x90\xcb\xe5\
+\x1e5M\xf3\xe2\xc2\xc2\x82e\xdbv&\x16\x8b\xc1q\x1c\xac\xad\xad\xd5j\xb5\xda\
+\x1f\xff\x03\x16\x8c\x1d\xfa>\x8f\x83 \xd8t\x1c\xe7K)e\x7f\xadV\xcb\x1b\x86\
+\xa1;\x8e\xe3\xda\xb6\xfd\x93\xe7y\xd7\x0e\x94\x0c\xa4\xc2\x06\xad}\xe0\xa5\
+\xa5\xa5v6\x9b\xbdW\xaf\xd7?\xf0<oZ\x08!\x94R\r\xa5\xd4b\x10\x04\xab\x07Q\t0\
+C\xf0j\xcf\x1c3\xb3&\x84H\x9b\xa69`\x18\x86p\x1c\xa7\xe18\xce\x86RJ\xa0\xc7\
+\x1dR\xb2\xac\x84\x0e\x8c\xf7iZl\x9b\x19\n\xf8\xb5W\x8e#\xb1X\xec\xd9\xe1\
+\xe1\xe1\x8b###\xa7\xd2\xe9\xb4\xbe\xb2\xb2\xe2\xcd\xcf\xcf\xff\\\xa9T\xbe\
+\xc8\xe5rw\xee\xdf\xbf\xdf\xea\x82\xc6\xa3D\xc7SDg\x040\xc6\xc0W\x00\xde\xe9\
+\x95\xe3\xc1T*\xf5\xea\xd8\xd8\xd8\x99\xd1\xd1QS)\x85\xcd\xcd\xcd\xf4\xad[\
+\xb7&o\xdf\xbe\xfd\xc0u\xdd\xbfnZ\x96N\xc0\x03\x00\x88\x12=\x93"zC\x07^\xac1\
+\x17[\xcc\x1f\xe6\xa5\xac\xe9\x00\xfa\n\x85\xc2\xcb\x1d\xb0\xef\xfb&3\x8f\
+\xe9\xban,--\xc1\xf7}\x10\x11\xd2\xe9t2\x99L\x0e\t!R\xf0}\xcb$\x1a\xd1\x88\
+\x8e3p\xdeg>\xe1\x01\xdf4\x98\xdf\xceK\xb9\x06\xec\xa4\xc2\x07\xf0u\x07\x1c\
+\x89D\xe0y\xde\x9d\xee\x1c\xdb\xb6\r)%\x1a\x8d\x06\x98\x19\x00.\xb7\x81\xe7\
+\x88y\x95\x81\xef<\xe67\xb1s\xd1ou8:\x00\xa7X,\x0evy<\x98J\xa5\xde]XXx\xdc\
+\xb6\xed\xbeh4\n\xc7q\xb0\xbe\xbe\xbeU\xab\xd5\xe6\x94R[\x00^\xf3\x98\x1b\
+\x00\x9a\x00\xeay)\xff\xd9k\xe9>\x8f\x99y\xd3u\xdd+\xcb\xcb\xcb\x87\xaa\xd5\
+\xea\xa4a\x18\x11\xd7u\xeb\xdb\xdb\xdb?6\x9b\xcd\xabA\x10T\xceJ\xb9\xbe\xf7\
+\xbb\xbd\xe3_-\xa6\xf0\x8d\x16\xb2@s\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getMoveUpBitmap():
     return BitmapFromImage(getMoveUpImage())
@@ -637,34 +624,34 @@ def getPasteData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x02\xadIDAT8\x8d\xa5\x92MHTQ\x14\x80\xbf\xfb\xe6\xa7,u\xd4qFM\x84@Pr\x17\
-\xe6\xc2MX43H\x8b\xcc\xda\x04\xb6s\x17\xb9mZ\x04R"m\xb2E\x14\x84\x06A\x82\
-\xdb\xda8\xbb\x9aEI\x90.$\x10\n\x021Cg\xc6t\xde\xf396\xe3xo\x8b\xf9\x7f\xce(\
-\xd6\x81\xc7\xbd\xef\x9e{\xbe\xf7\xdds\x9f\xe0\x88\x18\x1a\x1a\xfa\x00\xf4Y\
-\x96\xc3\xd3\xd3\xd3\x97\x0e\xab\x13\xc5/\xa3\xa3h\xcba\x9c\x00\xa9\xa6k\xe7\
-\xed\'j\xdfI\xa9<\xdd\xdd\x9d\x08\x91\xd9\xaa\x94ba\xe1\x1b\x9a&b\xe9\xe4\
-\xf6\xa03\xf2v\x1e\xe0l\x1f\xa9\xd1Q\xe4\x01\xf0\x88\xcfv[!\x9fII5\xc0\x9f\
-\xfa^\xad\xa9\xa3W\xb4\xb55\x955Z]\x8d\xb1\xfe}N\x9d\xdc\x9c\x93\n\xd0\x04\
-\xa6\x92\xda\xdd\xe7\xef\xf7\xdf\x00\xd8s\xa6[\x9f\xe4\xd3\xc1\x8b\xed\xae\
-\xc8\x9e\x97/F\x17\xbb\xc6>n\xb7\x87\xf6\xf6\x8e\xbcCF:3&\x93\xb0\xbe\xde)\
-\xaaZ\xcf\xd9zj\x97p\x11q\xcd\xce\xfd\x98\x00\n\xe0\xe50\xce\x1a;u\x0e\x87\
-\xc6\xfcf\x17\xc1\x07\x8f\xd1\xe3:\x13\x13OX\\\\*k\\SSM0x\x9f\xfa\x86z\xc6\
-\x1f\xdec\xb0y\x03\xa9D#(\xf2\xe0|_\x94\xc0L\x82\xbb\xc1\x8d\xddfcll\x8ct:]\
-\x16l\xb7\xdb\x11B\xe0r\xd5\x91H\x89\xd2\xcb\xb2\x82\xad!\x84\xc0\xe1pT\xcc+\
-\xa5\x8a^\x8e\x00\x17\xe7C\xa1\xd0!P\x08\x04\xfc\x15\xf3\x87\x1a\xf7\xf7\xf7\
-\x97\x01\xaa\xec#\x91R\x96\xa9\xaa\x04.R\xb6\x1a\x17\xa0\nP\xf8|\xbe\xff3.\
-\x18f\xc6\x1c\xdc0t\xbc\xde\xe6\xa3\xc1\x96\xfe3;\x1b\x02T\xc9\xf1\xfd~\x7f~\
-nl\x1b\x15k-\xc6\x85\xb4\x94\x92@\xc0_b(e\xa6\xaf\xb9\xb5X4V\xf1\xb4\x15[Q\
-\x0c(n\xc5\xda\xda/Ls\x87D"\x81R\xc7\xb9\xbc\xb2`\x995V\xac\xac\xfcd`\xe0F~\
-\x9f\xae\xc7\x8f\x0b\xde/\x81\xe6[\x91\xb5\xd4\xf58\x86a`\x9a\xdb\xffb\\\xb8\
-\xa4\x1d\xd3$\x1a\x8d\xa2\xb2\xff\xaea\x18D"\xebL\xbe\x9a\xe4j\xf3Bep\xee\
-\xdaN;%\xb1\x8d\x18--\xad\xf9M\xad\x96"]\x8f\x97@\xdd\xce\x9d\xa3\x8d\xdb\
-\xe4W\xc6\x1f\x05I\xa4\xb4J\x87\xc9\xc7\xcd\xd6\xcf\x9c\xb2\xa5\xca\xe6\xec\
-\x00\xaf\xc3$G\xae\xb0i\xee\xa6=\x17\xce\xe8\xf4\xa8\x8f%\x9b\xac\xff\xe8\
-\x81\x10\x107\xd3\x80\x8a\x16-e\xe2\xcee\xae\x0bM{\x81R\x1ek\xce2/\xfbM\x85\
-\xd8\x92UMc{\xcd}/\xa7\xa6fv\x0f\x14\x0c\x0f\xdf\xaa\x02\xea\x80\x06\xa0\x11\
-\xf0\x00\xde\xec\xbc\x06H\x00[\xc0\x06\x10\x03~\x03\x9b\xd9q{jjF\x02\xfc\x05\
-^a\x87\x8b\xa1\xca4\t\x00\x00\x00\x00IEND\xaeB`\x82' 
+\x02\xadIDAT8\x8d\xa5\x92MHTQ\x14\x80\xbf\xfb\xe6\'-m\xd4q\xfcI\x84@Pr\x17\
+\xe6\xc2MX\xe4\x88\xb4\xc8\xacM`;w\x91\xdb\xa6E0\xd4 m\xb2E\x14\x84\x13\x04\
+\tnk\xe3\xec\xcaEI\x90.$\x10\n\x021Cg\xc6t\xde\xf39\xd3\x8c\xe3\xbd-\xe6\xff\
+9\xa3X\x07\x1e\xef\xde{\xee\xf9\xdew\xcf}\x82#btt\xf4\x03\xd0oY\x9e\x9b\x9e\
+\x9e\xbetX\x9d(\x9e\xf8\xfdh+s8\x01R\xcd\xd7\xce\xdbO\x9c~\'\xa5\xf2\xf4\xf4\
+t!Df\xabR\x8a\xc5\xc5oh\x9a\x88\xa6\x93;#\xce\xf0\xdb\x05\x80\xb3\xfd\xa4\
+\xfc~\xe4\x01\xf0\xf8\x80\xed\xb6B>\x93\x92\x1a\x80?\xf5}Zsg\x9fhoo.k\xb4\
+\xb6\x16e\xe3\xfb\xbc\xaa\xda\x9a\x97\n\xd0\x04\xa6\x92\xda\xdd\xe7\xef\xf7\
+\xdf\x00\xd8s\xa6\xdb\x9f\xe4\xd3\x91\x8b\x1d\xae\xf0^\x13_\x8cn\x12\xc6>n\
+\xb7\x87\x8e\x8e\xce\xbcCF:\xf3N&ac\xa3KT\xb7\x9d\xb3\xf5\x9e^\xc6E\xd85;\
+\xffc\x12(\x80W\xe6p\xd6\xda\xa9s84\x16\xb6\xba\xf1=x\x8c\x1e\xd3\x99\x9c|\
+\xc2\xd2\xd2rY\xe3\xda\xda\x1a|\xbe\xfb\xd47\xd43\xf1\xf0\x1e#-\x9bH%\x1aA\
+\x91\x07\xe7\xfb\xa2\x04f\x12\xdc\rn\xec6\x1b\x81@\x80t:]\x16l\xb7\xdb\x11B\
+\xe0r\xd5\x11O\x89\xd2\xcb\xb2\x82\xad!\x84\xc0\xe1pT\xcc+\xa5\x8a&G\x80\x8b\
+\xf3\xa1P\xe8\x10(\x0c\x0ez+\xe6\x0f5\x1e\x1a\x1a*\x03T\xd9G"\xa5,SU\t\\\xa4\
+l5.@\x15\xa0\x18\x18\x18\xf8?\xe3\x82a\xe6\x9d\x83\x1b\x86NSS\xcb\xd1`K\xff\
+\x99\x9d\r\x01\xaa\xe4\xf8^\xaf7?6v\x8c\x8a\xb5\x16\xe3BZJ\xc9\xe0\xa0\xb7\
+\xc4P\xcaL_sk\xd1H\xb4\xe2i+\xb6\xa2\x18P\xdc\x8a\xf5\xf5_\x98\xe6.\xf1x\x1c\
+\xa5\x8esye\xc12k\xacX]\xfd\xc9\xf0\xf0\x8d\xfc>]\x8f\x1d\x17\xbc_\x02\xcd\
+\xb7"k\xa9\xeb1\x0c\xc3\xc04w\xfe\xc5\xb8pI\xbb\xa6I$\x12Ae\xff]\xc30\x08\
+\x877\x98z5\xc5\xd5\x96\xc5\xca\xe0\xdc\xb5\x9drJ\xa2\x9bQZ[\xdb\xf2\x9b\xda\
+,E\xba\x1e+\x81\xba\x9d\xbbG\x1b\xb7\xcb\xafL<\xf2\x11Oi\x95\x0e\x93\x8f\x9b\
+m\x9f9iK\x95\xcd\xd9\x01^\xcf\x91\x1c\xbf\xc2\x96\x99H{.\x9c\xd1\xe9U\x1fK6Y\
+\xff\xd1\x03! f\xa6\x01\x15)Z\xca\xc4\x9d\xcb\\\x17\x9a\xf6\x02\xa5<\xd6\x9c\
+e\\\xf6\x9b\n\xb1-\xab\x9b\x03{-\xfd/\x83\xc1\x99\xc4\x81\x82\xb1\xb1[U\x80\
+\x0b\xa8\x03\x1a\x007\xd0\x98\x1d\xd7\x00\t \x06l\x01\xbf\x81\xed\xec|\x1b0\
+\x83\xc1\x19\t\xf0\x17\\\xc1\x87\x8b\xbe\x18\xff{\x00\x00\x00\x00IEND\xaeB`\
+\x82' 
 
 def getPasteBitmap():
     return BitmapFromImage(getPasteImage())
@@ -856,51 +843,51 @@ def getTestData():
     return \
 '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x16\x00\x00\x00\x16\x08\x06\
 \x00\x00\x00\xc4\xb4l;\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
-\x04lIDAT8\x8d}\x95Ml\x15U\x14\xc7\x7f\xf7\xceL\xdf\xf7\x9biy\x0f\xd2RJ\xb5\
-\r\x16i\x01\x8d;EM$\x12\x134.\x881.\\\xb10\xc6\x95qg\x8c\t\x89!\xb2@\x8c\x0b\
-\xe3\x8a\xf8\x11\x83\x88\x86(\x89\xc1\nhD,\x9f!\x8dX\t(P\x0c\xf4\x95>\xfa\
-\xda\xf79_\xf7\xba\x98\xf7\x1em\x05nrr\'\xf7\x9e\xf9\x9d\xff9\xe7\xde\x19\
-\xc1}\x86\xd6Z\xf4\xf6\xf6v~\xb9w\xea\xa8i\xe2\x18\x06\x84\xa1F)>\xdc\xb4Y}p\
-\xbfw\xc5=\xd6\x9d\xfd_\x88K\xabV\x199\xd3\xec\xa0w\xa5\x85iHLS\xa3u\xc8\xd5\
-I\x8f\x99\x99\x80\xe3\xbf\xa9\xafv\xec\xd4\xaf\x01\xa5\xa5\x00\xf3.\xd0\xedR\
-\xca\x97\x1f\xdd(rZ\xa4\x91"\x8b\xe7\'@\x1bh\xc0\x0f\xeatu\xd6\xc8/+s\xfd:[\
-\xa4l\x1cPJ\xbd\x05\x9c_\x081\x96@_\x14B|<00\xe0\xac\x1d\xd2\x99|>\x89a,\xc3\
-0SH#\x8ea\xc6P*\x86R\xe0\xba>\'N\xa5\xe2\x93\xff\xaeH\x96\xcb\xe5\'\x95R3\
-\xc0_w\x03o\xb4,\xeb\xfd\xc1\xc1\xc1\x84eY\xdd\xb3\xb3q6=\xe1a\x18I\x0c)\x91\
-\x86\xc004\xa1R\x84\x81G\xe0\xd7\xd8\xb1\xb3\x07)e\xdaq\x1c977\xb7^)u\x06\
-\x98Z\x08v\x80s\xfd\xfd\xfd)\xcb\xb2\xba\x85\x10\xcc\x14-LC3\xb4\xa6\x8a\x94\
-!R6\x90\xb2\x8e\x1fT\xf0\xbd\n\xfb\xbfI\xf2\xc7\x9f1\x94R\x08!2\xa9T\xca(\
-\x95J\x8f\x00\xdf\x01\x8d\x16\xf8\xbcm\xdb\xbe\xe38\xab\x84\x88\xfa\xa9\xb5f\
-\xe2b\x9c\xb5\x0f\xcd\x92\xcf\xcd!e\x15CV\x08\xbc\n\xbe_\xe3\xdd\xf7zQJ\xb5}\
-M\xd3L\x0b!\xea\xd5j\xb5\x1b\x18\x95\x00B\x88t>\x9f\xef\xd4Z\xb3\xd0\x82 `\
-\xdf\xd7)\xc2\xa0\x8a\n\xcb\xa0+(Ug\xdf\x01\x1b\xa5\x14K\xfdm\xdb^)\x84x\xa1\
-u*\xb6f\xb3\xd9\xb4\x94\xd2\xd6Q\xf8E\xdd\x9c\xb8\x98\xe2\xf7\x93)\xca\xd5\
-\x0e\xe2q\xc1c\x1bK\xec\xffv\xf9\xff\xa0\x00R\n\xc74\xcd\x9a\xef\xfb[M`[<\
-\x1e/j\xadm\x01,\xc4j\xad\x11B\xf0\xc6\x9b\x01\x03\x03\xab1M\x93\x1b7$\xf1x\
-\x99d2\xd9\x06\xea\x05b\xba\xba\xba\x1a\x85Ba\x9b\x040M3\xd6rhY+\xd5\xe9\xe9\
-ir\xb9\\\xbb\x9e\xb9\\\x8ej\xb5\xda\xde_Z\x12\xd34c\xb6m#>\xf9\x88\xab==\xac\
-\xf6\xfcH\xaeh\xca\xd6D\xcf\x87\x7f\xea\xe0\xc8\xcf}\x8b\xca\xf3\xcc\xd3\x93\
-l\xd9\xecE\xd9i@\x80h\xce\x96\x05G\x8e\xf1\xa9\x0cUT\xd6\xc0\x87 \x00\xcf\
-\x03\xd7\x07\xd7\x85Z\x1d6\x8c\x84$\x13\r<\xcf\xa3R\xa9\xd0\xd1Qc\xddP@\xb9\
-\x02\xf5z\xe4\xe7y\xe0\xf9\xe0\xfb\x11K)0\xd6=\xcce\xcb\xe2\x15\xcb\x8c\x16B\
-\x15\x05\x08\x83\x96\xa3f\xe0\xc1\nc\xa7<\xe6\xe7=\x9e{\xb6\xc6\x8a\xe5>Z\
-\x83Vw@Z\x83\xd2P\x9c\x85r\x99w\xe4\xae\xdd\x1c\nB\x08\xc2\x08\x18\xf8\x91\
-\xb9^\xd3\\8{.\x058d2\x19\xce\x8f\xa7p\xddh\xdd\xf5"\xb5ASmK\xd0\xae\xdd\x1c\
-\x92\x00\xf3\xf3\x14\x84\x8c6\xfc\xa6\xd2\xf6\xec\xc3\xd8\xe9l\xbb\xbe7\xa7b\
-\\\x9b\x8c\xb5\xf7Z\xbeA\x00R@\xa3A\x19@\x02LO\xb3\xbd^\x8f\xfa\x10\x06\x91\
-\xfa\xb0\xa9\xe0\xc4Xf\xd1\x91\xd2Zs\xf0P.\xca.\xb8\x93\xa9\xd6QO\\\xd7\xda\
-\xdd\xfeV\xd4\x1a\xeb\xb5\xe3\xdcz>\x93\xd6\x8e\x10\xcd\x94\x14\\\x9b\x8c1z\
-\xacs\xd19m_y\xa0\xb7\xc7C\x080d\x14\xe0\xe0\xf7\xe9=\'\xcf\xac\xf9\xbcP(\
-\xdc\x92M\x7f\xeb\xc7#\xc3\xaf_\xba,\x8a\xb7K`\x9a\x10\x860v:\xc3\xbd\xc6\
-\xe9\xb3YB\x15\x05\xf0|\xf8\xe7\x8a\xb8=5\xfd\xc0\xa8\x10B\xb6\x15\x17\n\x85\
-[\xcb\xf3\xf9\x95\x7f_\xc9\x1f3d%\xabT0\xe8d\xe1\x87Q\xa7\x0eX\x0b\x81B\x08\
-\x84\x10h\xad\xebW\xaf\xe9\xf9\xfe>?y\xb3\x10\xfb\xf5\xe8/Co\x0b!f\xc7\xc7\
-\xc7\xcf\xc0\x92_\xd3\xf0\xf0\xf0\xe3Zk\xa7\xaf\xf7\xe6S=\xdd\xa5W\xf7~\x06\
-\x86a\xc4\xa5\x94V:\x9d\xf6\x00*\x95JL)\xe5\x05A`\x1a\x86q\xa9\xaf\xafoO"\
-\x91\x98\xbap\xe1\xc2\xe1E\x02\x96\xa6822\xb2A)\x95\x03\x96)\xa5\xd2\xae\xeb\
-\xda\xc5b\xf1\xa5z\xbd\x0e@"\x91\xc0\xb6\xed\xb3\xc9d\xf2\xb4\x94\xb2\xa4\
-\xb5.NLL\x1c_\xca\xf9\x0f\x7f\xb5v\xd2\xcd`A-\x00\x00\x00\x00IEND\xaeB`\x82'\
+\x04iIDAT8\x8d}\x95MlTU\x14\xc7\x7f\xf7\xe3\xcdL\xe7\xcdt^\xcb\x0cHi\x85X"Pl\
+E\xe3R\x08Q\x94\x98\x10\xe3\x82D\xe3\x9a\x85\x0b7\x1a\x13\x12\x13cBb\x88,0\
+\xc6\x85\xc1\x85\xc4\xc4\x18,\x1f1\x86\x18\xb1|-\x10+\x88\x92\x06E\xd4H[>\
+\xec4\xc5v:3\x9d\xce\xfb\xb8\xd7\xc5\x9b\x19\xda\n\xdc\xe4\xe4\xbd\xdc{\xde\
+\xef\xfc\xcf9\xf7\xde\'x\xc0\xb0\xd6\x8a\xee\xee\xee\x8e/\x0eN\x9c\xd6\x1aO)\
+\x88"\x8b1|\xb8y\x9b\xf9\xe0A\xdf\x8a\xfb\xcc{\x83\x9f\x8b?{zT^\xeb\x04\xdd\
+\xab\x1c\xb4\x92hm\xb16bt\xdcgj*\xe4\xdc\xf7\xe6\xcb={\xedk\xc0\xccR\x80\xbe\
+\x07t\x97\x94\xf2\x95\'7\x89\xbc\x15\x19\xa4h\xc7\x0f\xda\xc0*,\x10\x845:;\
+\xe6(,+s\xe3\x06\xdb\xa5\x9c?b\x8cy\x0b\xb8\xbc\x10\xa2\x96@_\x12B|\xdc\xdb\
+\xdb\xebmXo\xb3\x85B\x1a\xa5\x96\xa1\xb4\x8bT)\x94NbL\x12c\xa0^\x0f8\x7f\xc1\
+M\x8d\xdf\\\x91.\x97\xcb[\x8c1S\xc0\xef\xf7\x02or\x1c\xe7\xfd\xb5k\xd7\xb69\
+\x8e\xb3rz:\xc5\xe6\xa7}\x94J\xa3\xa4D*\x81R\x96\xc8\x18\xa2\xd0\'\x0c\xe6\
+\xd8\xb3\xb7\x0b)e\xc6\xf3<Y*\x95\x06\x8c1?\x01\x13\x0b\xc1\x1e\xf0\xf3\x9a5\
+k\\\xc7qV\n!\x98\xba\xe3\xa0\x95e\xfd\xa3U\xa4\x8c\x90r\x1e)k\x04a\x85\xc0\
+\xaf0x4\xcd\x95\xdf\x92\x18c\x10Bd]\xd7U333O\x00_\x03\xf3M\xf0\xe5\\.\x17x\
+\x9e\xd7#D\xdcOk-W\xaf\xa5\xd8\xb0n\x9aB\xbe\x84\x94U\x94\xac\x10\xfa\x15\
+\x82`\x8ew\xdf\xeb\xc6\x18\xd3\xf2\xd5Zg\x84\x10\xb5j\xb5\xba\x12\x18\x92\
+\x00B\x88L\xa1P\xe8\xb0\xd6\xb2\xd0\xc20\xe4\xd0a\x97(\xacb\xa22\xd8\n\xc6\
+\xd48t$\x871\x86\xa5\xfe\xb9\\n\x95\x10\xe2\xc5\xe6\xae\xd8\xd1\xde\xde\x9e\
+\x91R\xe6l\x1c~Q7\xaf^s\xf9\xe1G\x97r5A*%xj\xd3\x0c\x83\xc7\x96\xff\x0f\n \
+\xa5\xf0\xb4\xd6sA\x10\xec\xd0\xc0\xceT*u\xc7Z\x9b\x13\xc0B\xac\xb5\x16!\x04\
+\xaf\xbf\x19\xd2\xdb\xbb\x1a\xad5\xb7oKR\xa92\xe9t\xba\x05\xb4\x0b\xc4tvv\
+\xce\x17\x8b\xc5\x9d\x12@k\x9dl:4\xad\x99\xea\xe4\xe4$\xf9|\xbeU\xcf|>O\xb5Z\
+m\xad/-\x89\xd6:\x99\xcb\xe5\x10\x07>b\xb4\xab\x8b\xd5~\x10\xcb\x15\r\xd9\
+\x96\xf8\xfd\xc4\xc9\x04\xa7\xce>\xbc\xa8<\xcfn\x1dg\xfb6?\xce\xce\x02\x02D\
+\xe3\xe98p\xea\x0c\x9f\xc9\xc8\xc4e\r\x03\x08C\xf0}\xa8\x07P\xaf\xc3\\\r\x1e\
+\xef\x8fH\xb7\xcd\xe3\xfb>\x95J\x85Db\x8e\x8d\xebC\xca\x15\xa8\xd5b?\xdf\x07\
+?\x80 \x88Y\xc6\x80\xda\xd8\xc7_\x8e\xc3\xab\x8e\x8e\'"\x13\x07\x88\xc2\xa6\
+\xa3\xa5\xf7\x91\n\xc3\x17|fg}^x~\x8e\x15\xcb\x03\xac\x05k\xee\x82\xac\x05c\
+\xe1\xce4\x94\xcb\xbc#\xf7\xed\xe7x\x18A\x18\xc5\xc00\x88\xad\xee7\xac\x0e\
+\x97~v\x01\x8fl6\xcb\xe5\x11\x97z=\x9e\xaf\xfb\xb1\xda\xb0\xa1\xb6)h\xdf~\
+\x8eK\x80\xd9Y\x8aB\xc6\x0bACi\xeb\x19\xc0\xf0\xc5\xf6V}\xff\x99H26\x9el\xad\
+5}\xc3\x10\xa4\x80z\x9dY\x00\t09\xc9\xaeZ-\xeeC\x14\xc6\xea\xa3\x86\x82\xf3\
+\xc3\xd9E[\xcaZ\xcbW\xc7\xf3qv\xe1\xddL\xad\x8d{\xa2\x14{Zw\xc5\xf0\x05\xfe\
+\xd8\xd8\xc7\xcb\xaeKA\x88FJ\x06\xc6\xc6\x93\x0c\x9d\xe9X\xb4O[G\x1e\xe8\xee\
+\xf2\x11\x02\x94\x8c\x03|;\xa4\xdf8{\xae\xff\x93b\xb1\x18H\x80\x81\x81\x81\
+\xf6o\xbe\x1bx\xee\xefQn\xff;\x03ZC\x14\xc1\xf0\xc5,\xf7\x1b\x17/\xb5\x13\
+\x998\x80\x1f\xc0\xd88\x13c7\xfa\x0e[c\x9dV)\xac\xb5\x12\x10C\xa7\x07\xb6^\
+\x1f\xd5\x07\xc7\xc6\xc1\xd1p\xf3V\xa2l\x97\x1c\xf1\x05\xa7\xb2<x4}\xabT\x82\
+\xc9)u\xec\xc4\xc9\xc7\xb6\x00B\xc88\xa5\xd6\xaf\xa9\xbf\xbf\xff!\xa0\xcdZ\
+\xeb\xf4\xad\xbb\xfeL\xa7W\xdd}\xe0S\x81R*\xad\x94Je2\x99\x9a\xb5\x96J\xa5\
+\x92\x8e\xa2\xa8\x16EQB\x08\xf1KOO\xcf\xeel6;#\x84\x08\xa4\x94\xb5\x91\x91\
+\x91\xe2"p\x03\xbe\xc2Z\x9b\xb0\xd6:\xc4\x17\x94,\x95J\xed\xa5R\xe9\xedj\xb5\
+\n\x80\xeb\xbax\x9ew"\x9b\xcd\x9e\x01"!D(\x04\xc1\x95+\xbf\xde\\\xc8\xfa\x0f\
+\xee\xc2t\xda\xcc]\xab\x90\x00\x00\x00\x00IEND\xaeB`\x82' 
 
 def getTestBitmap():
     return BitmapFromImage(getTestImage())
@@ -1365,119 +1352,6 @@ 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 \
index 345b2f1d7cbc2238e895eda7f3ce236f451d12d8..db3e4f09fa3a0b715f39e409ac1e2591e0d808b8 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/Copy.png and b/wxPython/wx/tools/XRCed/src-images/Copy.png differ
index e2d79f40f36624034ae71cd7cf0ec483f08186a8..2478cbd42c3de86f2f6c6a7e040f2bd8398b33c8 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/Locate.png and b/wxPython/wx/tools/XRCed/src-images/Locate.png differ
index e0928b52cf0b076fb668a2a30d31b324e28e285a..74619ee6c4f45ee23c02fb81a87a3adbd5e3c06a 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/MoveDown.png and b/wxPython/wx/tools/XRCed/src-images/MoveDown.png differ
index d7acd169a8e8eb82348a0ea47802592b6f16f1f2..9d0a20d31fb17ce0d9a8e1514695e348289b3f72 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/MoveLeft.png and b/wxPython/wx/tools/XRCed/src-images/MoveLeft.png differ
index da6b7f1ea1bf487d2fed0452a6e0b4ff37c4cc06..823fc10545c1c56087a3951df32ffa4c2c5be36f 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/MoveRight.png and b/wxPython/wx/tools/XRCed/src-images/MoveRight.png differ
index 301647fa46fbcf94ac08f6a4b36c2ef5b4583aee..527be44f6eb1c77cb15c890f0ade6351f8300028 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/MoveUp.png and b/wxPython/wx/tools/XRCed/src-images/MoveUp.png differ
index f6a625ce0c201664218344077ac47171e3437933..b994df8af8f5e6b954520f17ee1372d6a6ff3aad 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/Paste.png and b/wxPython/wx/tools/XRCed/src-images/Paste.png differ
index 6f6118352ba17e383e80047c818e02cb27ff9cea..973fb032ed2b63d4fbbcb4280b59e07854fc4751 100644 (file)
Binary files a/wxPython/wx/tools/XRCed/src-images/Test.png and b/wxPython/wx/tools/XRCed/src-images/Test.png differ
index d7493cf8c646c1aef5f60a13b451b0fa0bae8555..9a062af1831e0e1df939fab3add2ff3806c1e8c4 100644 (file)
@@ -99,13 +99,44 @@ class TaskBarIcon(wx.TaskBarIcon):
         # Set the image
         self.SetIcon(images.getIconIcon(), "XRCed")
 
+# ArtProvider for toolbar icons
+class ToolArtProvider(wx.ArtProvider):
+    def __init__(self):
+        wx.ArtProvider.__init__(self)
+        self.images = {
+            'ART_LOCATE': images.getLocateImage(),
+            'ART_TEST': images.getTestImage(),
+            'ART_REFRESH': images.getRefreshImage(),
+            'ART_AUTO_REFRESH': images.getAutoRefreshImage(),
+            'ART_MOVEUP': images.getMoveUpImage(),
+            'ART_MOVEDOWN': images.getMoveDownImage(),
+            'ART_MOVELEFT': images.getMoveLeftImage(),
+            'ART_MOVERIGHT': images.getMoveRightImage()
+            }
+        if wx.Platform in ['__WXMAC__', '__WXMSW__']:
+            self.images.update({
+                    wx.ART_NORMAL_FILE: images.getNewImage(),
+                    wx.ART_FILE_OPEN: images.getOpenImage(),
+                    wx.ART_FILE_SAVE: images.getSaveImage(),
+                    wx.ART_UNDO: images.getUndoImage(),
+                    wx.ART_REDO: images.getRedoImage(),
+                    wx.ART_CUT: images.getCutImage(),
+                    wx.ART_COPY: images.getCopyImage(),
+                    wx.ART_PASTE: images.getPasteImage()
+                    })
+    def CreateBitmap(self, id, client, size):
+        bmp = wx.NullBitmap
+        if id in self.images:
+            img = self.images[id]
+            # Alpha not implemented completely there
+            if wx.Platform in ['__WXMAC__', '__WXMSW__']:
+                img.ConvertAlphaToMask()
+            bmp = wx.BitmapFromImage(img)
+        return bmp
+
 class Frame(wx.Frame):
     def __init__(self, pos, size):
-        pre = wx.PreFrame()
-#        pre.SetExtraStyle(wx.FRAME_EX_METAL)
-        pre.Create(None, -1, '', pos, size)
-        self.PostCreate(pre)
-        #wx.Frame.__init__(self, None, -1, '', pos, size)
+        wx.Frame.__init__(self, None, -1, '', pos, size)
         global frame
         frame = g.frame = self
         bar = self.CreateStatusBar(2)
@@ -168,6 +199,7 @@ class Frame(wx.Frame):
         menu.AppendSeparator()
         self.ID_LOCATE = wx.NewId()
         self.ID_TOOL_LOCATE = wx.NewId()
+        self.ART_LOCATE = 'ART_LOCATE'
         self.ID_TOOL_PASTE = wx.NewId()
         menu.Append(self.ID_LOCATE, '&Locate\tCtrl-L', 'Locate control in test window and select it')
         menuBar.Append(menu, '&Edit')
@@ -181,10 +213,13 @@ class Frame(wx.Frame):
         menu.Check(self.ID_SHOW_TOOLS, conf.showTools)
         menu.AppendSeparator()
         self.ID_TEST = wx.NewId()
+        self.ART_TEST = 'ART_TEST'
         menu.Append(self.ID_TEST, '&Test\tF5', 'Show test window')
         self.ID_REFRESH = wx.NewId()
+        self.ART_REFRESH = 'ART_REFRESH'
         menu.Append(self.ID_REFRESH, '&Refresh\tCtrl-R', 'Refresh test window')
         self.ID_AUTO_REFRESH = wx.NewId()
+        self.ART_AUTO_REFRESH = 'ART_AUTO_REFRESH'
         menu.Append(self.ID_AUTO_REFRESH, '&Auto-refresh\tAlt-A',
                     'Toggle auto-refresh mode', True)
         menu.Check(self.ID_AUTO_REFRESH, conf.autoRefresh)
@@ -194,12 +229,16 @@ class Frame(wx.Frame):
 
         menu = wx.Menu()
         self.ID_MOVEUP = wx.NewId()
+        self.ART_MOVEUP = 'ART_MOVEUP'
         menu.Append(self.ID_MOVEUP, '&Up', 'Move before previous sibling')
         self.ID_MOVEDOWN = wx.NewId()
+        self.ART_MOVEDOWN = 'ART_MOVEDOWN'
         menu.Append(self.ID_MOVEDOWN, '&Down', 'Move after next sibling')
         self.ID_MOVELEFT = wx.NewId()
+        self.ART_MOVELEFT = 'ART_MOVELEFT'
         menu.Append(self.ID_MOVELEFT, '&Make sibling', 'Make sibling of parent')
         self.ID_MOVERIGHT = wx.NewId()
+        self.ART_MOVERIGHT = 'ART_MOVERIGHT'
         menu.Append(self.ID_MOVERIGHT, '&Make child', 'Make child of previous sibling')
         menuBar.Append(menu, '&Move')
 
@@ -228,24 +267,16 @@ class Frame(wx.Frame):
         # Use tango icons and slightly wider bitmap size on Mac
         if wx.Platform in ['__WXMAC__', '__WXMSW__']:
             tb.SetToolBitmapSize((26,26))
-            new_bmp = images.getNewBitmap()            
-            open_bmp = images.getOpenBitmap()            
-            save_bmp = images.getSaveBitmap()            
-            undo_bmp = images.getUndoBitmap()            
-            redo_bmp = images.getRedoBitmap()            
-            cut_bmp = images.getCutBitmap()            
-            copy_bmp = images.getCopyBitmap()            
-            paste_bmp = images.getPasteBitmap()            
         else:
             tb.SetToolBitmapSize((24,24))
-            new_bmp  = wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_TOOLBAR)
-            open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR)
-            save_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR)
-            undo_bmp = wx.ArtProvider.GetBitmap(wx.ART_UNDO, wx.ART_TOOLBAR)
-            redo_bmp = wx.ArtProvider.GetBitmap(wx.ART_REDO, wx.ART_TOOLBAR)
-            cut_bmp  = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR)
-            copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR)
-            paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR)
+        new_bmp  = wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_TOOLBAR)
+        open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR)
+        save_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR)
+        undo_bmp = wx.ArtProvider.GetBitmap(wx.ART_UNDO, wx.ART_TOOLBAR)
+        redo_bmp = wx.ArtProvider.GetBitmap(wx.ART_REDO, wx.ART_TOOLBAR)
+        cut_bmp  = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR)
+        copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR)
+        paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR)
         tb.AddSimpleTool(wx.ID_NEW, new_bmp, 'New', 'New file')
         tb.AddSimpleTool(wx.ID_OPEN, open_bmp, 'Open', 'Open file')
         tb.AddSimpleTool(wx.ID_SAVE, save_bmp, 'Save', 'Save file')
@@ -257,22 +288,28 @@ class Frame(wx.Frame):
         tb.AddSimpleTool(wx.ID_COPY, copy_bmp, 'Copy', 'Copy')
         tb.AddSimpleTool(self.ID_TOOL_PASTE, paste_bmp, 'Paste', 'Paste')
         tb.AddSeparator()
-        tb.AddSimpleTool(self.ID_TOOL_LOCATE,
-                         images.getLocateBitmap(), #images.getLocateArmedBitmap(),
+        bmp = wx.ArtProvider.GetBitmap(self.ART_LOCATE, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_TOOL_LOCATE, bmp,
                          'Locate', 'Locate control in test window and select it', True)
-        tb.AddSimpleTool(self.ID_TEST, images.getTestBitmap(), 'Test', 'Test window')
-        tb.AddSimpleTool(self.ID_REFRESH, images.getRefreshBitmap(),
-                         'Refresh', 'Refresh view')
-        tb.AddSimpleTool(self.ID_AUTO_REFRESH, images.getAutoRefreshBitmap(),
+        bmp = wx.ArtProvider.GetBitmap(self.ART_TEST, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_TEST, bmp, 'Test', 'Test window')
+        bmp = wx.ArtProvider.GetBitmap(self.ART_REFRESH, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_REFRESH, bmp, 'Refresh', 'Refresh view')
+        bmp = wx.ArtProvider.GetBitmap(self.ART_AUTO_REFRESH, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_AUTO_REFRESH, bmp,
                          'Auto-refresh', 'Toggle auto-refresh mode', True)
         tb.AddSeparator()
-        tb.AddSimpleTool(self.ID_MOVEUP, images.getMoveUpBitmap(),
+        bmp = wx.ArtProvider.GetBitmap(self.ART_MOVEUP, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_MOVEUP, bmp,
                          'Up', 'Move before previous sibling')
-        tb.AddSimpleTool(self.ID_MOVEDOWN, images.getMoveDownBitmap(),
+        bmp = wx.ArtProvider.GetBitmap(self.ART_MOVEDOWN, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_MOVEDOWN, bmp,
                          'Down', 'Move after next sibling')
-        tb.AddSimpleTool(self.ID_MOVELEFT, images.getMoveLeftBitmap(),
+        bmp = wx.ArtProvider.GetBitmap(self.ART_MOVELEFT, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_MOVELEFT, bmp,
                          'Make Sibling', 'Make sibling of parent')
-        tb.AddSimpleTool(self.ID_MOVERIGHT, images.getMoveRightBitmap(),
+        bmp = wx.ArtProvider.GetBitmap(self.ART_MOVERIGHT, wx.ART_TOOLBAR)
+        tb.AddSimpleTool(self.ID_MOVERIGHT, bmp,
                          'Make Child', 'Make child of previous sibling')
         tb.ToggleTool(self.ID_AUTO_REFRESH, conf.autoRefresh)
         tb.Realize()
@@ -1798,6 +1835,8 @@ Please upgrade wxWidgets to %d.%d.%d or higher.''' % MinWxVersion)
             
         # Add handlers
         wx.FileSystem.AddHandler(wx.MemoryFSHandler())
+        self.toolArtProvider = ToolArtProvider()
+        wx.ArtProvider.Push(self.toolArtProvider)
         # Create main frame
         frame = Frame(pos, size)
         # Mac does not set the correct size